home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d18 / pascal3.arc / PASCAL.B04 < prev   
Text File  |  1989-02-04  |  179KB  |  5,346 lines

  1. =
  2.  
  3.  
  4.  
  5. From:    Heikki Levanto 
  6. To:      Charles Falconer                         Msg #2, 22-Jan-89 08:42pm
  7. Subject: Re: C versus PASCAL
  8.  
  9.  >>  > Can't help but wonder where Kahn is going to take TP from here
  10.  
  11.  > but don't ask for more speed - try the equivalent C program on TC2.0, and
  12.  > note that 5 sec compile on TP becomes 1 min compile/link on TC,
  13.  
  14. I *DO* ask for more speed. Programs and computers can / will / should always
  15. be faster smaller and more powerful.  I'm well aware that Turbo is hell fast
  16. for a compiler, and I love that, but still.  I have been waiting for it to
  17. compile, and in my opinion the machines ought to wait for people, and not the
  18. other way around.
  19.  
  20. Just for the record, I'm not complaining. SOmeone asked what more could there
  21. be, and I came with some more ideas.
  22.  
  23. BTW, I told of a small bug here, you can't put an init section of an unit into
  24. an include file.  Has that message disappeared, or don't you folks care ?
  25.  
  26. - Heikki
  27.  
  28. --- ConfMail V4.00
  29.  * Origin: LSD - Levanto Software Development (2:230/22.28)
  30.  
  31. *** There is a reply. See #18.
  32.  
  33.  
  34. From:    Mike Janke 
  35. To:      Tom Bocchino                             Msg #3, 26-Jan-89 04:59pm
  36. Subject: File Move Procedure
  37.  
  38.  > Would anybody know where I might be able to get a procedure
  39.  > to move a file
  40.  > from one directory to another directory.
  41.  
  42. I'm kinda new at this and haven't tried it, but how 'bout the built in rename
  43. procedure?
  44.  
  45. --- FD 2.00
  46.  * Origin: Kendall BBS - Miami's First QuickBBS  (1:135/4)
  47.  
  48. *** There is a reply. See #20.
  49.  
  50.  
  51. From:    Mike Janke 
  52. To:      Rolf Thomassen                           Msg #4, 26-Jan-89 05:26pm
  53. Subject: Re: Help On The Way
  54.  
  55.  >   WHILE KeyPressed DO IF ReadKey = #0 Then ;
  56.  
  57. Can you explain the Then without anything following it?  I first saw that in a
  58. example in the Turbo Pro manual and thought it was a misprint... but the darn
  59. thing worked.
  60.  
  61. --- FD 2.00
  62.  * Origin: Kendall BBS - Miami's First QuickBBS  (1:135/4)
  63.  
  64. *** There is a reply. See #98.
  65.  
  66.  
  67. From:    Mike Janke 
  68. To:      Patrick Edwards                          Msg #5, 26-Jan-89 05:47pm
  69. Subject: Pascal Sucks
  70.  
  71.  >  >   IReally Think Pascal Sucks !!!!! Sucks So Bad That I Cant
  72.  
  73.  > Basic is good, but you have to look at what is possible in
  74.  > pascal, sure its very stricted but theres ways of getting
  75.  
  76. You should be awarded for the composure you displayed in your message to
  77. that... person.
  78.  
  79. --- FD 2.00
  80.  * Origin: Kendall BBS - Miami's First QuickBBS  (1:135/4)
  81.  
  82. *** There is a reply. See #30.
  83.  
  84.  
  85. From:    Tom Keifer 
  86. To:      Jim Forbes                               Msg #6, 27-Jan-88 08:27pm
  87. Subject: Re: Compiler Directives
  88.  
  89. ->  TP5 Reference Guide pg. 430  "Compiler directives in the
  90. -> source code
  91. ->  always override the default values in both the
  92. -> command-line compiler
  93. ->  and the IDE."
  94. ->
  95. ->    The following is a piece of code from a program that I
  96. -> am writting.
  97. ->                                     .
  98. ->                                     .
  99. ->  {I$-} REPEAT
  100.  
  101. Ok, there's your problem it should be {$I-} not {I$-}  (the '$' First!)
  102.  
  103. THen it should work properly.
  104.  
  105. ->              GOTOXY(52,Num_Address+7); WRITE(' ':5); {Erase
  106. -> any errors   }
  107. ->              GOTOXY(52,Num_Address+7);               {if
  108. -> loop is necessary}
  109. ->              READ(Value);
  110. ->        UNTIL IORESULT=0;
  111. ->  {I$+} IF Value IN [0..Num_Address]   {Note: 0 implies none
  112. -> chosen}
  113.  
  114.    You have to change it here also to {$I+}
  115. --- QuickBBS v2.01
  116.  * Origin: The Expressions BBS 305-884-5355 Miami Springs Fla. 135/39
  117. (1:135/39)
  118.  
  119. *** There is a reply. See #154.
  120.  
  121.  
  122. From:    Scott Samet 
  123. To:      Charles Falconer                         Msg #7, 28-Jan-89 12:38pm
  124. Subject: Re: Records in Files
  125.  
  126.  >  >   therecd := rcdfile^;
  127.  >  >   get (rcdfile);
  128.  >
  129.  > You are absolutely right - I stand corrected.  However, the STANDARD
  130.  > meaning of read (defined in the STD) is "var := f^; get(f)".  My own
  131.  > compiler won't accept the read(record).
  132.  
  133. The standard only defines READ for textfiles, although many compilers accept
  134. it for typed files.  Turbo Pascal nothing but READ.
  135.  
  136. --- FD TosScan .16 (286)
  137.  * Origin: Friends of Dorothy: Flying House doing Mach 10 (1:135/990)
  138.  
  139.  
  140. From:    Scott Samet 
  141. To:      Dave Goggin                              Msg #8, 28-Jan-89 12:40pm
  142. Subject: FUNCTION RETURN STRING?
  143.  
  144.  > Unless Turbo Pascal is different than regular pascal (in this case) I
  145.  > don't see how you can return a string, from a function.  I though you
  146.  > couldn't return structured variables from a function.
  147.  
  148. It is different, you can return strings.
  149.  
  150. --- FD TosScan .16 (286)
  151.  * Origin: Friends of Dorothy: Flying House doing Mach 10 (1:135/990)
  152.  
  153. *** There is a reply. See #57.
  154.  
  155.  
  156. From:    Wes Fisher 
  157. To:      Mike Janke                               Msg #9, 28-Jan-88 08:05am
  158. Subject: Thanx!!
  159.  
  160. Thanx for your help on the bits!!  Would have crashed ya, but I don't have
  161. the money to pay for Long Distance calls!  Thanx, It works great, and I'm
  162. now using it.
  163.  
  164. Wes
  165. --- QuickBBS v2.03
  166.  * Origin: WriteLn('I`ve got Pascal's Elbow!');  Connect 2400! (1:130/39)
  167.  
  168. *** There is a reply. See #156.
  169.  
  170.  
  171. From:    James Snart 
  172. To:      All                                      Msg #10, 27-Jan-89 09:17am
  173. Subject: COMM source
  174.  
  175. Does anyone know I can find a Turbo Pascal source for a small communication
  176. program.  I have pibterm 4.0 but it's too big and most options I never use.
  177. --- QuickBBS v2.03
  178.  * Origin: Somewhere on Cherry St. (1:170/211)
  179.  
  180.  
  181. From:    Lou Garner Of 150/501 
  182. To:      Bruno De.montis                          Msg #11, 22-Jan-89 10:48pm
  183. Subject: Re: UPDATE POLICY
  184.  
  185.  >Quoting Borland's license agreement :
  186.  >
  187.  >"To take advantage of this upgrading procedure, you must send:
  188.  > >> The discs and manuals of your product.
  189.  >So I don't know *how* you could sell the previous version of the 
  190. soft.
  191.  
  192. I don't know where that policy comes in.  I upgraded both TC and TP
  193. in the big package, handled everything by phone, and have my old TP 
  194. and
  195. TC manuals an
  196.  
  197. --- ConfMail V4.00
  198.  * Origin: Megaboard ]I[ (717)561-8150 Hayes 9600v (1:150/513)
  199.  
  200.  
  201. From:    Randy French 
  202. To:      All                                      Msg #12, 26-Jan-89 12:10pm
  203. Subject: Volume Labels
  204.  
  205. Does anyone know of an EASIER way to write/change volume labels without using
  206. FCB's?  I have a unit that uses FCB's to write/change a volume label but I'm
  207. trying to find an easier way if possible.
  208.   
  209.                                             Thanks for any info,
  210.                                             Randy French
  211.  
  212.  
  213. ---
  214.  * Origin: The Questor Project - (703) 525-7220 HST (Opus 1:109/130)
  215.  
  216.  
  217. From:    Charles Falconer 
  218. To:      Holger Schurig                           Msg #13, 27-Jan-89 08:38am
  219. Subject: Generate system errors
  220.  
  221.  > CF> - Means to generate a system error. Can be done now
  222.  > CF> - with exitproc and halt, but awkward.
  223.  >
  224.  > Please explain. You can generate a system error (if you
  225.  > ever want this) by accessing to drive Z:, which should
  226.  > not be accesible. Or set the refresh count to a very low
  227.  
  228. For example, I have a unit TXTFILES that implements ISO standard versions of
  229. read for integer, real, etc, together with versions that return error booleans
  230. rather than aborting.  When they abort I want to generate the same error as
  231. Turbo originally did.  I can do this by setting a flag and halting with an
  232. error code, and the initialization for the unit has linked into the exit
  233. procedure chain.  At exit I then give a verbal message, rather than the
  234. cryptic error #.  So far all works fine, but if the system is run in the
  235. integrated environment the error is ignored, and I dont get the editor
  236. positioned etc.  (I have used some code to pick off the callers address to the
  237. readint procedure, and stored that as the error location).  All works fine, at
  238. least in TP4, except for the integrated environment.
  239.  
  240. I hate cryptic error messages, so one day I plan to create a baby unit that
  241. will translate them into verbiage.  This has the added advantage that you can
  242. add a message to your own systems telling the user to report the problem
  243. (which should not have happened).
  244.  
  245.  
  246. ---
  247.  * Origin: Alice's Restaurant (Opus 1:141/488)
  248.  
  249.  
  250. From:    Charles Falconer 
  251. To:      Holger Schurig                           Msg #14, 27-Jan-89 08:51am
  252. Subject: Re: USES style
  253.  
  254.  > CF> Poor mans equivalent of "FROM module IMPORT ..."
  255.  >
  256.  > I have never understand the need this FROM module IMPORT
  257.  > <long list of> everything i want to use> in Modula. One reason
  258.  > might be to simplify the compiler.  But a good compiler should
  259.  > work for me, not i for him !
  260.  
  261. Of course tastes vary.  I want to know where to look for the details if
  262. needed, and having an extremely short memory I want to do a search in the
  263. current file.  A split screen editor helps.  Thus I often use NE (Norton
  264. editor), which is fast, small, and allows me to manipulate 2 files.  I often
  265. find myself extracting a procedure header or such from one to the other and
  266. commenting it out, just to have it available for later reference.
  267.  
  268. For similar reasons I hate systems that clear the screen without being told. 
  269. Rather than complex linkages, simply leave the previous report such as a
  270. directory, on the furshlugginer screen.  For example, Telix allows me to call
  271. a directory, but then clears.  Now I go through the
  272. transmit sequence, and mis-remember the exact name.  Around we go again.
  273.  
  274.  
  275. ---
  276.  * Origin: Alice's Restaurant (Opus 1:141/488)
  277.  
  278. *** There is a reply. See #118.
  279.  
  280.  
  281. From:    Charles Falconer 
  282. To:      Holger Schurig                           Msg #15, 27-Jan-89 09:03am
  283. Subject: Re: GOTOs
  284.  
  285.  > {$B+} { boolean evaluation must be set to short-circuit
  286.  
  287.  
  288.  > for this ! }
  289.  > REPEAT
  290.  >   IF NOT (part1 AND part2 AND part3) THEN <other code>
  291.  > UNTIL done;
  292.  
  293. I avoid that type of code simply because short circuit evaluation is not part
  294. of the ISO standard, and the resultant portability bugs, or problems if Turbo
  295. is set for sequential conjunction, are extremely hard to find.  If partN is a
  296. procedure the net difference in running time must be miniscule.  I do however
  297. <sometimes> use
  298.  
  299.   IF (i <= max) AND (xarray[i] <> 9) THEN BEGIN  (* COMMENT here *)
  300.  
  301. for efficiency and readability.
  302.  
  303. An earlier message of yours mentioned errors by altering refresh.  I don't
  304. understand.
  305.  
  306.  
  307. ---
  308.  * Origin: Alice's Restaurant (Opus 1:141/488)
  309.  
  310. *** There is a reply. See #119.
  311.  
  312.  
  313. From:    Paul Lindquist 
  314. To:      All                                      Msg #16, 26-Jan-89 03:54pm
  315. Subject: WILDCARDS
  316.  
  317. I am writing a simple filter program to use with my BBS program.  I am wanting
  318. to take all files that match a wildcard criteria and process them. I want to
  319. know how I can define how to read wildcard, etc. from my DOS directory.
  320.  
  321. IE I want to process all .TXT files, I would type filter *.txt.  How could i
  322. get this to list out file1.txt, file2.txt, file3.txt, etc.
  323.  
  324. Paul Lindquist
  325. --- TBBS v2.0
  326.  * Origin: TBBS in '89, We aren't QUICKly Lost in Time 918-744-0249 (170/210)
  327.  
  328. *** There is a reply. See #17.
  329.  
  330.  
  331. From:    Bruce Mahoney 
  332. To:      Paul Lindquist                           Msg #17, 27-Jan-89 06:42pm
  333. Subject: Re: WILDCARDS
  334.  
  335. -------
  336. var sr : SearchRec;
  337. begin
  338.   FindFirst( '*.TXT', 0, sr );
  339.   While DosError = 0 do
  340.   begin
  341.     { do your process with sr, is = filename }
  342.     FindNext( sr )
  343.   end;
  344. -----
  345. Must have 'USES Dos;'
  346. --- QuickBBS v2.03
  347.  * Origin: ]≡[ The Pascal Programmer's Club ]≡[ (918) 438-2749 (1:170/403)
  348.  
  349. *** Part of a conversation.
  350.  
  351.  
  352. From:    Brian Maher 
  353. To:      Pat Anderson                             Msg #18, 26-Jan-89 03:27am
  354. Subject: Re: C versus PASCAL
  355.  
  356. Pat, Have you considered switching to one of the Modula-2 compilers that are
  357. out there?
  358.  
  359. I personally use the FST Modula-2 compiler and have found it to be a terrific
  360. compiler.
  361.  
  362.  
  363.  
  364. ---
  365.  * Origin: BECS MSDOS OPUS, Bellevue, WA - 206/451-1274 (Opus 1:343/101)
  366.  
  367. *** Part of a conversation.
  368.  
  369.  
  370. From:    Mike Hinds 
  371. To:      Matt Franckiewicz                        Msg #19, 26-Jan-89 12:18pm
  372. Subject: Nan
  373.  
  374.  MF> The 5.0 manual says that certain real numbers are NaN 's.  So what is a 
  375.  MF> NaN?
  376.  
  377. Not A Number - more of a philosophical concept than hard math, but the 
  378. processor has been taught to recognize certain values as representing NaNs. TP
  379. didn't bother.
  380.  
  381.  
  382. --- msged 1.96L MSC
  383.  * Origin: /\/\ Turbo NorthWest \-\ Everett, Washington  (1:343/27.2)
  384.  
  385.  
  386. From:    Mike Hinds 
  387. To:      Tom Bocchino                             Msg #20, 26-Jan-89 12:24pm
  388. Subject: File Move Procedure
  389.  
  390.  TB> Would anybody know where I might be able to get a procedure to move a 
  391.  TB> file
  392.  TB> from one directory to another directory.
  393.  
  394. You won't believe it until you try it, but the Rename procedure will do 
  395. exactly what you need (ASSuME-ing, of course, that the source and destination 
  396. directory are on the same drive). Try this:
  397.  
  398. VAR F : File;
  399.  
  400. BEGIN
  401. Assign(F, 'C:\DIR1\TESTFILE.TST');
  402. Rename(F, 'C:\DIR2\TESTFILE.TST');     { full path name a MUST! }
  403. END.
  404.  
  405. Could it possible be easier?
  406.  
  407.  
  408.  
  409. --- msged 1.96L MSC
  410.  * Origin: /\/\ Turbo NorthWest \-\ Everett, Washington  (1:343/27.2)
  411.  
  412. *** Part of a conversation.
  413.  
  414.  
  415. From:    Mike Hinds 
  416. To:      Michelle Wyner                           Msg #21, 26-Jan-89 12:30pm
  417. Subject: TP 5.0
  418.  
  419.  MW> I just got TP 5.0.  REAL great program, but the users manual doesn't 
  420.  MW> help much in learning Pascal.  I've read it from front to back, and I 
  421.  MW> know the basics, but I need to know more.  Can anyone suggest a program 
  422.  MW> (not the TP tutor for $69.95) or a book (under $20.00 preferably) 
  423.  MW> that'll help me?  Thanks.
  424.  
  425. By all means get Mastering Turbo Pascal 4.0 by Tom Swan. You won't be sorry. 
  426. His book is nearly legendary, and applies well to TP5.
  427.  
  428. By all means DO NOT get Mastering Turbo Pascal 5 by another author, who ripped
  429. off Tom Swan's title, and by several accounts has nothing to say that you 
  430. probably don't already know.
  431.  
  432. Other good recommendations include The Complete Pascal (fat black book, author
  433. forgotten) and Turbo Pascal Tutor by (guess who!) Borland, includes program 
  434. disk(s). Some reservations on that one - others in this echo have mentioned 
  435. bugs in their program, but still a worthwhile learning tool.
  436.  
  437.  
  438. --- msged 1.96L MSC
  439.  * Origin: /\/\ Turbo NorthWest \-\ Everett, Washington  (1:343/27.2)
  440.  
  441. *** There is a reply. See #28.
  442.  
  443.  
  444. From:    Mike Hinds 
  445. To:      Dave Hess                                Msg #22, 26-Jan-89 12:56pm
  446. Subject: Help
  447.  
  448.  DH> I declared the top window something like 
  449.  DH> this...WINDOW(1,1,81,1) and the bottom I think Window(24,1,104,1)??? 
  450.  DH> What am I doing wrong?
  451.  
  452. Just like your ClrScr problem. You haven't read the manual.
  453.  
  454.  
  455.  
  456. --- msged 1.96L MSC
  457.  * Origin: /\/\ Turbo NorthWest \-\ Everett, Washington  (1:343/27.2)
  458.  
  459. *** There is a reply. See #33.
  460.  
  461.  
  462. From:    Reinhardt Mueller 
  463. To:      Andy Lester                              Msg #23, 26-Jan-89 09:02pm
  464. Subject: Re: A Little Problem
  465.  
  466. AL> So, yeah, I've done a little bit of Pascal programming, and
  467. AL> I'm glad we did it in Pascal, because it's been very easy to
  468. AL> maintain, although Apple Pascal is abominably slow and has a
  469. AL> few bugs in it.
  470.  
  471. AL> We ARE looking at phasing IBM clones as the Apples die, and
  472. AL> that development is being done in Turbo 4.0. We just port
  473. AL> over the source code, make some changes here and there, and
  474. AL> run it.
  475.  
  476. Make SOME changes here and there and run it? They way you're
  477. talkin' about it makes me think you're switching to the MS-DOS
  478. hosted version UCSD p-system on the IBM! If you're thinking about
  479. just porting it over to Turbo 4.0, first think about getting
  480. Turbo 5.0 Professional. You have more work ahead of you than you
  481. think and you'll want a debugger for those big jobs. Having
  482. overlay capabilities also helps.
  483.  
  484. First of all, your screen coordinates in the turbo start at 1. In
  485. p-System they start at 0. You have one more screen line to play
  486. with on the IBM. You have the names of the screen-handling
  487. procedures to deal with too. If your program uses the Apple's
  488. arrow keys you'll have to account for that too. Your users won't
  489. appreciate having to use Ctrl key combinations! <<grin>>
  490.  
  491. Are you using the SCAN function in the Apple version? Turbo
  492. Pascal doesn't (and has never had it, but could use) the SCAN
  493. function. Be prepared to write a/some little assembly language
  494. routine(s) to emulate it.  That's what I'm thinking of doing now.
  495.  
  496. Are you directly comparing two records of the same type with =?
  497. That's illegal in Turbo. You'll have to compare each field
  498. separately in Turbo or use a trick mentioned somewhere in the
  499. Turbo manual. If those records you want to compare contain
  500. variant fields, you won't be able to reliably use the trick.
  501.  
  502. TYPE
  503.   S = PACKED RECORD
  504.         first_field : 0..1;
  505.         second_field : 0..7;
  506.         third_field  : 0..3;
  507.         fourth_field : 0..255;
  508.       END;
  509.  
  510. If you have stuff like the above, it will take up 4 bytes in
  511. Turbo but only 2 bytes in UCSD Pascal. Remember that if/when
  512. using free unions to test bits from wierd stuff coming in from
  513. and going to the hardware.
  514.  
  515. No, I'm not saying that you should have gone with the MS-DOS
  516. hosted p-System. That would be a big mistake. You might get the
  517. Apple-to-IBM conversion done sooner, but development and program
  518. execution would still be slow on a PC -- even an AT! Turbo has
  519. much more to offer!
  520.  
  521. --- Via OpXpress V1.02  Always a notch off....just like the Madman!
  522.  * Origin: LSO II * Everett WA * 206/334-7039 * HST (1:344/100.0)
  523.  
  524. *** There is a reply. See #130.
  525.  
  526.  
  527. From:    Reinhardt Mueller 
  528. To:      Tim Geisweit                             Msg #24, 26-Jan-89 09:13pm
  529. Subject: Re: goto's
  530.  
  531. JO> If you're going to program in BASIC I suggest you try TRUE
  532. JO> BASIC. Its a version of BASIC by the guys who originally
  533. JO> created the language. It does not allow GOTO's and you will
  534. JO> soon find that you don't need them at all if you use it.
  535.  
  536.     Tim, if/when you have lots of existing programs written in
  537. BASICA/GWBASIC, you might also try QuickBASIC v4.5 by Microsoft.
  538. $99 retail, maybe $70 at discount stores. It's most compatible
  539. with interpreted BASIC.
  540.  
  541.     GOTO's are allowed but you should have little if any need for
  542. them. It has multi-line IF-THEN-ELSE, SELECT CASE constructs
  543. (like Pascal's CASE), WHILE-DO LOOP and DO LOOP WHILE (like
  544. Pascal's WHILE and REPEAT-UNTIL constructs), named subroutines
  545. and true named functions. Yes, it still has the DEF FN kind too,
  546. but the procedures (SUBs) and FUNCTIONs allow you to pass data as
  547. arguments (by value or reference) in a parameter list. Functions
  548. and SUB's have local variables, thereby reducing or eliminating
  549. side-effects caused by accidently using the same variable in two
  550. subroutines.
  551.  
  552.     Line numbers are optional; you can use labels instead. Even
  553. in a large program you shouldn't need a lot. The only exception I
  554. can think of is trapping I/O (such as disk and printer) errors.
  555. You can break your program up into modules (analogous to UNITs in
  556. Turbo and USCD Pascal), letting you create reusable modules. If
  557. you do it right, you should be able to isolate your disk/printer
  558. I/O and their error-trap (ON ERROR GOTO) routines to one module.
  559. That way the rest of your program won't be messed up with GOTO's.
  560. QuickBASIC also has an integrated source-level debugger to help
  561. you trace through your program when things go wrong.
  562.  
  563.     Do you hate that FIELD statement for doing random I/O? Too
  564. many variables for one program line? Tired of LSET-ing and
  565. Rset-ing? You don't need it in QB. The TYPE statement lets you
  566. declare records (they call 'em user-defined types). You can have
  567. a array of records but not record of arrays.
  568.  
  569.     In my opinion, when writing a new program you shouldn't use
  570. GOTO's if something better is available, but they're nice to have
  571. around. Example: You're converting an interpreted BASIC program
  572. to compiler BASIC. In that way, you see how the program runs as
  573. you work at getting rid of the GOTO's. I've converted a BASICA
  574. program (a label-maker) to QuickBASIC and just about all the
  575. GOTO's are gone, and boy, is it easy to read! And yes, it did
  576. yell when I tried to GOTO a label that was in FUNCTION or
  577. SUBroutine. It will also yell if you try to get out of a SUB or
  578. FUNCTION to another part of the program with a GOTO. One way in,
  579. one way out! I would say more about QuickBASIC, but this IS the
  580. PASCAL echo.
  581.  
  582.     True BASIC? I've never used it so I can't honestly knock it
  583. or praise it. Obviously Joe O'Leary likes it. From what I've read
  584. about it, it's a good try, but a little too late.
  585.  
  586.     I feel that Microsoft BASIC (interpreted and compiled) has
  587. become the standard. If you can use QuickBASIC with no GOTO's,
  588. you'll be as near to Pascal as you can get without actually
  589. getting Turbo 5.0! Get it! You won't be disapointed. You'll won't
  590. want to go back to BASICA! Learning Pascal will be that much
  591. easier and faster once you've played around with QB for a while.
  592.  
  593.  
  594. --- Via OpXpress V1.02  Always a notch off....just like the Madman!
  595.  * Origin: LSO II * Everett WA * 206/334-7039 * HST (1:344/100.0)
  596.  
  597. *** There is a reply. See #67.
  598.  
  599.  
  600. From:    Reinhardt Mueller 
  601. To:      Douglas Peterson                         Msg #25, 26-Jan-89 07:57pm
  602. Subject: Re: TURBO PASCAL 5.0
  603.  
  604. -> I must admit that I used MicroStar as my Word Processor for
  605. -> the longest of times. (until Sprint came along...)
  606.  
  607. I also use MicroStar as my word processor, er um text editor!
  608. Have been ever since I got it last March! I'll admit it's a bit
  609. of a RAM hog but what a powerhouse!
  610.  
  611. Some parts can be overlaid to give you a bit more memory for
  612. those huge files. If you try to add overlays on your copy, be
  613. careful. Some of those assembly routines are near calls. You'll
  614. have to change those near-call assembler routines to far calls
  615. and re-assemble them before putting the {$F+,O+} directives in.
  616.  
  617. Sprint?  Too much money!
  618.  
  619. --- Via OpXpress V1.02  Always a notch off....just like the Madman!
  620.  * Origin: LSO II * Everett WA * 206/334-7039 * HST (1:344/100.0)
  621.  
  622.  
  623. From:    Kevin Lowey 
  624. To:      Greg Wood                                Msg #26, 26-Jan-89 05:23pm
  625. Subject: Re: RE:tug O'wards Iv
  626.  
  627.  
  628.  GW>Kevin I should be able to help you out. Seeing as how the stamp 
  629.  GW>for your letter would cost 25 cents and the stamp to TUG 25 cents  
  630.  GW>I would only be out 50 cents. Send me a copy of the letter in  
  631.  GW>netmail or this echo along with your address and any other  
  632.  GW>information I might would need and I will mail it for you.  
  633.  
  634.   Thanks for the offer!!  However, I've learned from other people about 
  635. International Postage (red face).  I didn't know there was such a thing. Oh
  636. well, thanks for the offer.   
  637.  
  638.   By the way, the reason they are taking this cheaper route is 
  639. interesting.  BORLAND used to include their prospectus in every BORLAND
  640. product.  That gave TUG all the free advertisement they needed.  However,
  641. Borland has stopped doing this, so now no one knows about TUG.  For all you
  642. TUG members out there, please spread the word.  For all the people that are
  643. NOT TUG members, I'll try and find their address and subscription form at home
  644. and will post another message with it. 
  645.  
  646. -- Kevin Lowey  
  647.   
  648.  
  649. ---
  650.  * Origin: University of Sask. Computing Services (Opus 1:140/43)
  651.  
  652. *** There is a reply. See #131.
  653.  
  654.  
  655. From:    Colten D. Edwards 
  656. To:      Robert Turner                            Msg #27, 26-Jan-89 12:00pm
  657. Subject: FINDFIRST procedure TP4
  658.  
  659. Lets see an example of your usage of both commands. One thing about Exec is
  660. that unless the program is in the current directory you'll have to specify a
  661. complete path/filename.ext to the program. As for FindFirst
  662. var DT : Searchrec;
  663.  
  664.          FindFirst(PrgrmName,Flags,DT);
  665.                   Where Flags is a Attrib byte of one of the following
  666.                         Directory,Anyfile,etc...
  667. Use anyfile and test DT.Attr to see if it's equal to Directory. If it is then
  668. do a FindNext(DT) 
  669.  
  670. --- ConfMail V4.00
  671.  * Origin: Treasure Isle Private Mail System (1:140/51)
  672.  
  673. *** There is a reply. See #66.
  674.  
  675.  
  676. From:    Colten D. Edwards 
  677. To:      Michelle Wyner                           Msg #28, 26-Jan-89 12:09pm
  678. Subject: TP 5.0
  679.  
  680. Look for the Book Mastering Turbo Pascal v4 Second Edition by Tom Swan.
  681. Published by Hayden Books ISBN # 0-672-48421-8. I just got it from a book club
  682. and wish I had seen it when I first started programming. Lots of examples and
  683. a command reference.. 
  684.  
  685. --- ConfMail V4.00
  686.  * Origin: Treasure Isle Private Mail System (1:140/51)
  687.  
  688. *** Part of a conversation.
  689.  
  690.  
  691. From:    Colten D. Edwards 
  692. To:      Chris Austin                             Msg #29, 26-Jan-89 12:13pm
  693. Subject: ASYNC10.ARC
  694.  
  695. I've recompiled the src with masm 5.1 and Tasm 1.0 no problems. Found the src
  696. same place as you in fact... 
  697.  
  698. --- ConfMail V4.00
  699.  * Origin: Treasure Isle Private Mail System (1:140/51)
  700.  
  701. *** There is a reply. See #65.
  702.  
  703.  
  704. From:    Mark Hopkins 
  705. To:      Howard Jiang @ 902/10                    Msg #30, 25-Jan-89 06:30am
  706. Subject: Pascal Sucks
  707.  
  708. In a message of <20 Jan 89 20:18:48>, Howard Jiang @ 902/10 (1:10/8) writes:
  709. >  IReally Think Pascal Sucks !!!!! Sucks So Bad That I Cant Even get a
  710. >Taste!!!!!!    You Pascal Programers Bit The Big One!!!!!!
  711. > I Think The Best Language(And I Use IT) is BASICA and Pascal Really
  712. >Sucks!!!!!   
  713. >            If You Have any Comments to me call Me at
  714. >                         602-297-6490
  715. >                   I Really Like To Get Into Discusions!!
  716.  
  717. Nice try bud, but just a bit obvious, huh?  Remember... just say NO!
  718.  
  719.  
  720. --- msged 1.96S ZTC
  721.  * Origin: SWAT: Blaise-ing Code! SeaSoft Network (1:343/8.13)
  722.  
  723. *** Part of a conversation.
  724.  
  725.  
  726. From:    John Simmons 
  727. To:      Howard Jiang @ 902/10                    Msg #31, 27-Jan-89 12:06pm
  728. Subject: Re: Pascal Sucks
  729.  
  730. Ya know, it's a real bother to us grown ups when you 8-year-olds think they
  731. know what they're doing.  Get a life jerk.
  732. --- QuickBBS v2.03
  733.  * Origin: Bytes 'R Us; San Ysidro CA (619) 428-9773 (1:202/112)
  734.  
  735. *** Part of a conversation.
  736.  
  737.  
  738. From:    John Simmons 
  739. To:      MIKE SIMMONS                             Msg #32, 27-Jan-89 12:18pm
  740. Subject: :-
  741.  
  742. Are we related????
  743. --- QuickBBS v2.03
  744.  * Origin: Bytes 'R Us; San Ysidro CA (619) 428-9773 (1:202/112)
  745.  
  746. *** There is a reply. See #128.
  747.  
  748.  
  749. From:    John Simmons 
  750. To:      Dave Hess                                Msg #33, 27-Jan-89 12:21pm
  751. Subject: Help
  752.  
  753. Every time you use the window command, the previous window is wiped out,
  754. and the new window takes over.  The ranges you specified are also wrong.
  755. The max window is (1,1,80,25).  Your numbers were too high, and I assume
  756. that the windows wrapped to the topp of the screen.  Maybe I'm wrong about
  757. that though.
  758. --- QuickBBS v2.03
  759.  * Origin: Bytes 'R Us; San Ysidro CA (619) 428-9773 (1:202/112)
  760.  
  761. *** Part of a conversation.
  762.  
  763.  
  764. From:    Tim Van Over Of 152/18 
  765. To:      Moderator                                Msg #34, 28-Jan-89 12:58am
  766. Subject: Descriptor
  767.  
  768.  
  769. Moderator,
  770.  
  771.    We need a description to attach to the label of this conference and
  772. rather than take it upon ourselves we decided it would be best to allow the
  773. moderator decide in whichever manner he/she felt suited (user vote ect...).
  774.  
  775.    I carry quite a few of conferences and to be frank with you I am tired
  776. of dreaming up descriptions for conferences that I do not participate in.
  777.  
  778.    An idea occured to me... what would it be the result if everyone that
  779. moderated a conference took advantage of the individual origin file option
  780. in most mail programs an example below...
  781.  
  782. "* Origin: DAILY   - Read the Bible in a year (KJV) (1:152/18)"
  783.            +- 08 -+  +-----------  30  -----------+
  784.  
  785.    If your mail program does not allow individualized origin lines than
  786. perhaps a personal tear line fitted to funtion key (macro) would do, in
  787. anycase we aren't talking about that much luggage as it is the moderator
  788. that is carrying this flag and not the whole conference.
  789.  
  790. "--* DAILY   - Read the Bible in a year (KJV)"
  791.      +- 08 -+  +-----------  30  -----------+
  792.    
  793. --* Tv "ALL in favor... All opposed... Whatcha' all think??"
  794.  
  795. --- ConfMail V4.00
  796.  * Origin: Zone 8 NETWORK Gateway - (1:129/34)
  797.  
  798. *** There is a reply. See #139.
  799.  
  800.  
  801. From:    Jeff Posey 
  802. To:      All                                      Msg #35, 25-Jan-88 04:54pm
  803. Subject: Turbo 4.0
  804.  
  805. Help.. In a program I put in 
  806.  
  807. Uses Blah, blah, graph;
  808.  
  809. begin
  810.   initgraph;
  811.   circle(blah);
  812. end.
  813.  
  814. and had no errors but when i ran it it said
  815. "You need to use initgraph first" or something? whats the deal?
  816.  
  817.    Jeff
  818. --- QuickBBS v2.03
  819.  * Origin: The Gold Mine...The GAME Board (8:7102/8)
  820.  
  821. *** There is a reply. See #142.
  822.  
  823.  
  824. From:    Dale Barnes 
  825. To:      George Falcon                            Msg #36, 27-Jan-89 07:59am
  826. Subject: Re: Tpb 5.0
  827.  
  828. -> --> > No easy or cheap way around.
  829. -> -->
  830. -> -->I beg to differ.  Opus is an easy and cheap way around
  831. -> -->TPB5.0.  Until an author releases something fully
  832. -> -->compilable from an inexpensive package like TP Pro 5.0 by
  833. -> -->itself, the overall effort and expense required will still
  834. -> -->be too steep for me to work with TPB.  No offense intended,
  835. -> -->but I conclude it's still not for me.
  836.  
  837. No Offense taken.  I was replying to someone asking if TPBoard 5.0
  838. source was avalible completely.  I was just telling them what the
  839. author shows to be needed to recompile the code.  I for one do not
  840. use TPBoard either but it seems to be a good package.
  841.  
  842.                                                 Dale
  843. --- QuickBBS v2.03
  844.  * Origin: Home of Majik Board(tm) (HST) Shalimar, FL (NEC 366) (1:366/200)
  845.  
  846. *** There is a reply. See #167.
  847.  
  848.  
  849. From:    Dave Goggin 
  850. To:      All                                      Msg #37, 28-Jan-89 12:34pm
  851. Subject: PASCAL RECURSION
  852.  
  853.  
  854. _RECURSION_ _AS_ _AN_ _ALTERNATE_ _METHOD_
  855. The following statistics were found in a research
  856. study this week, whether recursive procedures were really all that
  857. time inefficient.
  858.    
  859. TEST 1: bubble sort an array of integers.  Identical array presented
  860. to both recursive and iterative procedures. times are in minutes,
  861. using 6502B processor.
  862.    
  863. #elements    recursive     iterative
  864.    
  865. 300          1:33.32       1:32.13
  866. 360          2:26.30       2:25.74
  867. 600          6:01.70       6:00.57
  868.    
  869. test 2: find the factorials from 1 to 23 using a recursive
  870. factorial procedure.  time in seconds.  answers returned as reals.
  871.    
  872. recursive:   1.61 sec
  873. iterative:   1.79 sec
  874.    
  875. test 3: find the first 18 numbers in the fibonacci sequence.  time is in
  876. seconds.
  877.     
  878. recursive:   14.89 sec
  879. iterative:    0.13 sec
  880.  
  881.    
  882. the high inefficency procedure was this:
  883.         
  884. FUNCTION RecursiveFib (n : INTEGER) : INTEGER;
  885. BEGIN
  886.   IF (n=1) OR (n=2)
  887.      THEN RecursiveFib := 1
  888.      ELSE RecursiveFib := RecursiveFib(n-1) +     RecursiveFib(n-2);
  889. END;
  890.  
  891. the results seem to show that in order for recursion to work, you must plan
  892. carefully to get the maximum efficiency, and not overuse
  893. recursion when a simple solution exists.
  894.  
  895. eeeeeeeeeeeeeeeeeeeeeeeeeee
  896. --- TBBS v2.0
  897.  * Origin: G.A.D.M. Multi-User TBBS Hayward,CA.(415) 581-3019  (161/208)
  898.  
  899. *** There is a reply. See #143.
  900.  
  901.  
  902. From:    Joerg Hegermann 
  903. To:      dj murdoch                               Msg #38, 25-Jan-89 04:23pm
  904. Subject: re: Units
  905.  
  906. Hi there,
  907.  
  908. You were right.  I discovered it only after I've sent this message.
  909. I was probably too estonished myself and didn't read the number carefully. In
  910. fact it was the error number for the data segment.
  911. Anyhow, nice to know that there are people outside, willing to help.
  912. See ya round...
  913.  
  914. Cheers
  915. Joerg Hegermann
  916.  
  917. --- ConfMail V3.2
  918.  * Origin: THE SINGAPORE LINK (3:600/1)
  919.  
  920. *** There is a reply. See #39.
  921.  
  922.  
  923. From:    Joerg Hegermann 
  924. To:      Dj Murdoch                               Msg #39, 25-Jan-89 04:31pm
  925. Subject: Units
  926.  
  927. Hi there,
  928.  
  929. Remember me?
  930. Always when I browse through thses messages from you guys I wonder how many
  931. useful units you have over there in the States.  We here in Singapore have
  932. very few really good units on our boards.
  933. I was wondering whether you might be able to give me the names of your best
  934. units and the boards to be found.
  935. If one can access to those boards with fast registering, I would like to dl
  936. some.  Or better, if I sent you a return envelope, and some disks, could you
  937. copy me some of your best units?
  938.  
  939. Cheers
  940. Joerg Hegermann
  941.  
  942. --- ConfMail V3.2
  943.  * Origin: THE SINGAPORE LINK (3:600/1)
  944.  
  945. *** Part of a conversation.
  946.  
  947.  
  948. From:    Joerg Hegermann 
  949. To:      Tom Bradford                             Msg #40, 25-Jan-89 09:22pm
  950. Subject: Re: Style Debate #9,005
  951.  
  952. Hi Tom,
  953.  
  954. I'm writing from Singapore.
  955. I read your message regarding these F/X units.
  956. They sounded interesting to me.
  957. Are they public domain? And if so, is the source included?
  958. I'd be interested in downloading them in orderr to learn some pascal, since
  959. I'm still quite new to it.
  960. Perhaps if you could get me an account in your BBs I could download it from
  961. here? (That is if they aren't too big...otherwise I'll be poor due to the
  962. phone costs from here to the States).
  963.  
  964. Cheers
  965. Joerg Hegermann
  966.  
  967. --- ConfMail V3.2
  968.  * Origin: THE SINGAPORE LINK (3:600/1)
  969.  
  970. *** There is a reply. See #59.
  971.  
  972.  
  973. From:    Joerg Hegermann 
  974. To:      Gary Doughty                             Msg #41, 27-Jan-89 03:36pm
  975. Subject: re: Quick Sort
  976.  
  977. Hi Gary,
  978.  
  979. As far as I know there are some sorting routines in the Turbo Pascal Tutor.  I
  980. havn't got it myself, but perhaps anybody else out there can give you a
  981. listing.
  982.  
  983. Cheers
  984. Joerg Hegermann
  985.  
  986. --- ConfMail V3.2
  987.  * Origin: THE SINGAPORE LINK (3:600/1)
  988.  
  989. *** There is a reply. See #91.
  990.  
  991.  
  992. From:    Joerg Hegermann 
  993. To:      Lee Bollard                              Msg #42, 27-Jan-89 03:43pm
  994. Subject: re: TP run Dos prog.
  995.  
  996. Hi There,
  997.  
  998. If you have Turbo Pascal 5 then you might like to check out the EXEC procedure
  999. on page 264...
  1000.  
  1001. Cheers
  1002. Joerg Hegermann
  1003.  
  1004. --- ConfMail V3.2
  1005.  * Origin: THE SINGAPORE LINK (3:600/1)
  1006.  
  1007.  
  1008. From:    Joerg Hegermann 
  1009. To:      Jim Roach                                Msg #43, 27-Jan-89 03:44pm
  1010. Subject: re: tp4 tutorial
  1011.  
  1012. Hi There,
  1013.  
  1014. I found the Turbo Pascal Tutor by Boarland quite useful.
  1015.  
  1016. Cheers
  1017. Joerg Hegermann
  1018.  
  1019. --- ConfMail V3.2
  1020.  * Origin: THE SINGAPORE LINK (3:600/1)
  1021.  
  1022.  
  1023. From:    Joerg Hegermann 
  1024. To:      Holger Shurig                            Msg #44, 27-Jan-89 04:03pm
  1025. Subject: Hi There
  1026.  
  1027. Hi Holger,
  1028.  
  1029. As you might realize from my name, I'm German too.
  1030. I'm living in Singapore, but will be going back to Germany in less than 6
  1031. months.  I've been staying here for about 4 years.
  1032. I'm just about to finish my Abitur here.
  1033. I was just wondering how the modeming world in Germany is.
  1034. When I was the last ime in Germany there was practically nothing on compared
  1035. wth the over 150 public Bulletin Boards here in Singapore (consider that
  1036. Singapore is only an island of 20 x 40 Km).
  1037. From which state are you writing anyhow?
  1038. When 'll be going back to Germany I'll be living in Baden-Wuerttemberg close
  1039. to the lake of Constance.
  1040. I'm also thinking about setting up a BBs in Germany, since I've been running a
  1041. BBs here in Singapore for more than 2 years.
  1042. But how is it with the modems there?
  1043. I have a Hayes 2400 and a Smarteam 1200.  As far as I know they are not
  1044. approved by the Bundespost, are they?
  1045. What modem are you using? Are there any Hayes command compatible modems that
  1046. are approved by the Bundespost?
  1047.  
  1048. Hope to be hearing from you soon...
  1049.  
  1050. Cheers
  1051. Joerg Hegermann
  1052.  
  1053. --- ConfMail V3.2
  1054.  * Origin: THE SINGAPORE LINK (3:600/1)
  1055.  
  1056.  
  1057. From:    Allen Lew 
  1058. To:      Randall Smith                            Msg #45, 27-Jan-88 03:18pm
  1059. Subject: Re: JoyStick Routine
  1060.  
  1061. Are you sure?????
  1062. Hey that's what my country men say!
  1063. --- QuickBBS v2.03
  1064.  * Origin: Minfo - QBBS is quick! but slowed down by 1200 modem (3:600/17)
  1065.  
  1066.  
  1067. From:    Hal Smith Of 600/1 
  1068. To:      Gary Godfrey                             Msg #46, 17-Jan-89 08:27pm
  1069. Subject: Re: Text Editor
  1070.  
  1071. Turbo Editor Toolbox 4.0
  1072.   Four flavors.
  1073. 1. Very simple
  1074. 2. Binary Editor.  (No assembler code, but a good unit)
  1075. 3. Slightly complex editor.
  1076. 4. MicroStar.  Full Blown package with all sorts of goodies.
  1077.  
  1078. Also works with TP5, with a couple of delcaration changes, which are
  1079. documented.
  1080. -h
  1081. --- QuickBBS v2.03
  1082. fergivintr 
  1083.  
  1084. --- ConfMail V4.00
  1085.  * Origin: SpaceNet - WOCin' Slow at 2400 - Singapore (1:600/6)
  1086.  
  1087.  
  1088. From:    Tony Shelton 
  1089. To:      brian corll                              Msg #47, 28-Jan-89 03:24am
  1090. Subject: .GIF
  1091.  
  1092. I think that the best way for you to get the GIF file is
  1093. for us to do it ourselves.  Let me know what is best for you
  1094. and I'll do my best to help.
  1095.  
  1096. BTW, how many manuals does TP v5.0 come with.  There was a
  1097. screw up in my order and Borland has sent me _2_ UPDATE
  1098. manuals, 1 USER'S GUIDE, and 1 REFERENCE GUIDE.  Am
  1099. I missing anything?
  1100. Thanks,
  1101. Tony
  1102.  
  1103. --- Via OpXpress V1.03ß
  1104.  * Origin: The Tech Connect - **HST** (1:124/6215)
  1105.  
  1106. *** There is a reply. See #144.
  1107.  
  1108.  
  1109. From:    Tony Shelton 
  1110. To:      Murray Eisenberg                         Msg #48, 28-Jan-89 03:13am
  1111. Subject: Re: Turbo Pascal 5.0 with NEC V30/8087
  1112.  
  1113.  >Thanks for the info that the underflow bug did not arise with your 
  1114.  >V30/8087-2.  Do you have a code number or date on your V30?  It's 
  1115.  >possible, of course, that there is a bug in some versions of V30 
  1116.  >that's  fixed in others.
  1117.  
  1118. I installed my V30 about 2 years ago, so it is at least that old.
  1119. I've no experiance with that particular AST card, but the AST boards
  1120. where I used to work never gave any problems.
  1121.  
  1122. --- Via OpXpress V1.03ß
  1123.  * Origin: The Tech Connect - **HST** (1:124/6215)
  1124.  
  1125.  
  1126. From:    Jettero Heller 
  1127. To:      All                                      Msg #49, 28-Jan-89 08:26pm
  1128. Subject: Opening Files
  1129.  
  1130. I have Lightspeed Pascall 1.11 for the Macintosh, and I am having trouble
  1131. opening files.  I am in the process of creating an on-line game, and I want to
  1132. make the player files named after their name.  I am trying to use an array to
  1133. do that, but it doesn't seem to work.  Does anyone know how to create a knew
  1134. random access file which is named (called on) by the users name/alias for the
  1135. game?
  1136.  
  1137.  
  1138. ---
  1139.  * Origin: THE EXCHANGE (214) 517-8553 Plano, TX (Opus 1:124/3220)
  1140.  
  1141.  
  1142. From:    James Williams 
  1143. To:      Peter Kolding                            Msg #50, 28-Jan-89 06:36pm
  1144. Subject: Setting typematic rate
  1145.  
  1146.  >According to Norton this should double the typematic rate:
  1147.  >
  1148.  >program typematic_rate;
  1149.  >USES DOS;
  1150.  >VAR reg : registers;
  1151.  >begin
  1152.  >  with reg do
  1153.  >    begin
  1154.  >       bl:= $04;                {typmatic rate}
  1155.  >       bh:= $00;                {typematic delay}
  1156.  >       ah:= $03;
  1157.  >       al:= $05;
  1158.  >    end;
  1159.  >  Intr($16,reg);
  1160.  >end.
  1161.  >
  1162.  >But nothing happens when I call it. I run a clone 8088 XT
  1163.  >with Pheonix ROM BIOS Ver.2.03. I 'suspected' an incompatible
  1164.  >BIOS, but I run WordPerfect on the same system and it manages
  1165.  >to control the typematic rate. I'd appreciate any help to get
  1166.  >this working.
  1167.  
  1168. Pete, you should've looked closer at what Norton said: that function is
  1169. for the PCjr!  That's why you cannot get it to work w/your system.  I
  1170. also have a Phoenix ROM BIOS, and have yet to come upon a program, or
  1171. the knowledge with which to change the typematic rate.  I've tried a PD
  1172. program, but w/o success.  If, and when, I come across anything that
  1173. works, I'll let you know ASAP.  Would you kindly do the same for me?
  1174. Til then,
  1175.  
  1176. =:(JRWZ):=
  1177.  
  1178.  
  1179.  
  1180. ---
  1181.  * Origin: Backstreet BBS [HST], Fulton, NY * (315)-593-1589 (Opus 1:260/325)
  1182.  
  1183. *** There is a reply. See #211.
  1184.  
  1185.  
  1186. From:    James Williams 
  1187. To:      Ron Dexter                               Msg #51, 28-Jan-89 06:33pm
  1188. Subject: Screen-writes
  1189.  
  1190.  >I'm trying to read & write to memory
  1191.  >(off the screen).  Well, actually I
  1192.  >did it, but I was wondering if
  1193.  >there is an easier way to go?
  1194.  >Warn you, I only have v3.0.
  1195.  
  1196. An easier way than what?  Maybe you did it, but how're we supposed to
  1197. know if what we do is easier or not if you don't even show us what you
  1198. did?
  1199. Anyways, This is how I do my direct screen-writes, but I've a Mono
  1200. monitor, so I've never had to worry about Snow for the CGA screen:
  1201.  
  1202. Declare a pointer to a record type that's suited to the memory you're
  1203. writing to, in this case the screen memory, then whenever you have to
  1204. write to memory, use the pointer as access.  To give credit where credit
  1205. is due, I got the idea from O'Brien's _Turbo Pascal: The Complete
  1206. Reference._
  1207.  
  1208. program Write_Direct;
  1209.  
  1210. const
  1211.     MONOSEG = $B000; {take your pick according to your monitor}
  1212.     CGASEG = $B800;
  1213.  
  1214. type
  1215.     vidmempointer = ^screenrec;
  1216.     screenrec = record
  1217.         SCRXY : array [1..80,1..25] of record
  1218.            ch : char;
  1219.            attrib : byte;
  1220.            end;{array record}
  1221.         end;{screenrec record}
  1222.  
  1223. var
  1224.     screen : vidmempointer; {screen is the key to memory}
  1225.  
  1226. begin
  1227.     new(screen); {prepare screen for use}
  1228.     screen := ptr(MONOSEG,$0000); {screen now set to Mono video memory
  1229.                                    use CGASEG for Cga memory.}
  1230.     screen^.SCRXY[1,1].attrib := $70;
  1231. {      |        |        |         |
  1232.        |        |        |          --> Reverse video attribute
  1233.        |        |         --> attribute record in array
  1234.        |         --> X,Y coordinates on screen (like GOTOXY(x,y))
  1235.         --> pointer to video memory
  1236. }
  1237.     screen^.SCRXY[1,1].ch := 'Z'; { <--note char here, not attribute.}
  1238. end.
  1239. {   Warning: do not use DISPOSE, for it will crash the program, if not
  1240. the system.}
  1241.  
  1242. =:(JRWZ):=
  1243.  
  1244.  
  1245.  
  1246. ---
  1247.  * Origin: Backstreet BBS [HST], Fulton, NY * (315)-593-1589 (Opus 1:260/325)
  1248.  
  1249. *** There is a reply. See #172.
  1250.  
  1251.  
  1252. From:    Charles Falconer 
  1253. To:      All                                      Msg #52, 27-Jan-89 04:33pm
  1254. Subject: TP6 wishes
  1255.  
  1256. TP4 (and 5) are less efficient in memory use than TP3 for CPM, in
  1257. the sense that heap and/or stack overflow may occur when memory is
  1258. still available.  I wish TP6 to allocate stack above the heap, and
  1259. let the two grow together again.  This can be done as follows:
  1260.  
  1261. 1.  Allocate all memory.  Call this portion A
  1262. 2.  Reduce the allocation A by an initial stack amount, say 4k
  1263. 3.  allocate a new segment (S) (which will take the piece left at
  1264.     the top in 2) for the stack.  set SS 64k below this, set
  1265.     sp at 0fff0h, and record the minimum sp value allowable.
  1266.     (0f000h for the 4k allotment suggested above).  This part
  1267.     is designed to not change addresses of in use memory later.
  1268. 4.  Reduce the A allocation to just cover the global data and
  1269.     set DS appropriately.  Now allocate a new segment H (heap)
  1270.     of say 4k.  Set the initial heap control pointers accordingly.
  1271.  
  1272. The system is now operating with code, globals, heap and stack
  1273. segments allocated, and a large space between heap and stack that
  1274. is unallocated.  Nothing need be done until either a heap or
  1275. stack overflow occurs.  At this point the appropriate segment
  1276. must be expanded (by say 4k again, more if needed and available),
  1277. and the heap segment may be contracted.
  1278.  
  1279. This mechanism is for the present DOS memory allocation strategies,
  1280. and must be different for 386 systems in real mode.  The point is
  1281. that relatively small heap/stack allocations are made, and an
  1282. overflow (a rare event, thus minimum overhead) attempts to expand
  1283. the allocation.  The program only fails if this secondary allocation
  1284. cannot be made.
  1285.  
  1286. Now, as long as the program is running, a minimum of memory is in
  1287. use.  Thus execution of chained programs, or intervention by TSR's,
  1288. will find memory available, and may grab it (provided they release
  1289. it again before the main program resumes).  When and if memory
  1290. overflow occurs, it will be because ALL memory has been used.
  1291. There is now no need to pre-allocate with the (*$M directive*).
  1292.  
  1293. The heap mechanism itself can be improved.  I have code to implement
  1294. the following, in both assembly and Pascal.  Heap items are always
  1295. allocated with a header, holding a pointer to the next allocation
  1296. (NIL for the last allocated), and the size allocated.  For the 8086
  1297. this implies 6 bytes.  All memory allocated by new is thus linked
  1298. in the order allocated (and getmem too).  Any free space sections
  1299. are linked in order of memory address, with contiguous free pieces
  1300. combined.  The system keeps pointers to the first and last allocated,
  1301. and to the first free block.  Any pointer assignment can now be
  1302. checked for a valid heap item (with a directive to inhibit, allowing
  1303. use of pointers outside the heap).  new/dispose and mark/release can
  1304. co-exist.  dispose can always check for a valid pointer.  These run
  1305. time checks greatly improve programming accuracy (PascalP implements
  1306. all of them, so this is not an unproven method).
  1307.  
  1308. For dynamic code swapping, it is possible to keep a separate list which will
  1309. not be affected by release and/or dispose, and allocate memory for code as
  1310. needed.  Code segments are intrinsically relocatable, so a strategy for
  1311. releasing and/or moving code segments when the memory is required, can be
  1312. implemented.  This will allow large programs to run at maximum speed.
  1313.  
  1314.  
  1315. ---
  1316.  * Origin: Alice's Restaurant (Opus 1:141/488)
  1317.  
  1318.  
  1319. From:    Charles Falconer 
  1320. To:      All                                      Msg #53, 28-Jan-89 12:05pm
  1321. Subject: PascalP - CPM
  1322.  
  1323. I have a complete ISO standard portable Pascal system (validated),
  1324. that runs on the HP3000, and CPM (never finished the MSDOS port).
  1325. The compiler source and manual are available for freq on 1:141/205,
  1326. Hippocampus, (203) 481-7475 9600bd.  ARC files PP319SOR and PPMANUAL. 
  1327.  
  1328. Code generators exist for Hp3000 native code, 8080 native code, and
  1329. p-code (not SCUD style).  The PCD version implements virtual code
  1330. memory, and can run in small memory systems (e.g. the 41k compiler
  1331. executes in 16k or so, and can compile itself in 63k on CPM - 10000
  1332. packed lines, about 1200 distinct identifier spellings).
  1333.  
  1334. The native code modules require SLR systems SLRMAC (or Z80ASM) assemblers,
  1335. and SLRNK (or SLRNKPLUS).  M80/L80 will not do - they truncate identifiers
  1336. and mishandle libraries.
  1337.  
  1338. I will release the code generator and run-time library sources to responsible
  1339. persons who will keep me informed, for CPM use, and will discuss the MSDOS
  1340. port also (Compiler/codegenerator runs, but library has insects).
  1341.  
  1342. A run-time system is freely available on YARU bbs (203) 785-2912, 2400 bd,
  1343. down at present), but no freq is possible.  If sufficient interest appears I
  1344. will place them on Hippocampus also.  Communications have also been
  1345. implemented, with runtime modules for Kaypro and Televideo.  These allow BBS
  1346. implementations with machine independant coding and program chaining
  1347.  
  1348. The CPM versions will run full speed on MSDOS machines using V20-80
  1349. (requires a V20 cpu), with minor problems due to faulty parameter
  1350. passing in V20-80.  You can also use ZSIM or Z80EMU on any machine,
  1351. with a heavy slowdown.  Compilation is much slower than Turbo (about
  1352. 500 lpm), but run modules are comparable speed and size to TP4, smaller
  1353. and faster than TP3.  Full listings of source and code can be made.
  1354.  
  1355. The PCD executable files are identical for MSDOS and CPM - the only
  1356. difference is the interpreter (and the speed).  This does NOT apply
  1357. to native code files.  PCD is about 5x slower than native, and about
  1358. 3x smaller, i.e. the compiler would be about 150-200k in native code.
  1359. Data space is limited to 64k (small model, 16 bit pointers).  Code is
  1360. essentially unlimited because of code swapping in virtual memory.
  1361. Separate compilation is possible.  Max memory usage is about 100k
  1362. total, code, data and interpreter.
  1363.  
  1364.  
  1365. ---
  1366.  * Origin: Alice's Restaurant (Opus 1:141/488)
  1367.  
  1368.  
  1369. From:    Winthrop Chan 
  1370. To:      Randy French                             Msg #54, 29-Jan-89 12:27am
  1371. Subject: Hey...
  1372.  
  1373. How's life at Presearch? I'm stuck over at Unisys now cranking out dBase and C
  1374. code.
  1375. (and Pascal obviously!)
  1376. Win
  1377.  
  1378.  
  1379. ---
  1380.  * Origin: Space Sprockets ][ Bowie,Md (Opus 1:109/509)
  1381.  
  1382.  
  1383. From:    Dave Hess 
  1384. To:      Charles Ford                             Msg #55, 28-Jan-89 12:26pm
  1385. Subject: I do !
  1386.  
  1387.  
  1388.   I am calling all the windows Right but it looks Like this!
  1389.  
  1390.  
  1391. ####################################################################
  1392. ##########QUICKBBS###########FILES####################DUMB..ECT#####
  1393.   I want this line on top! one line! as a window! and when I write 
  1394. the bottom...It combines with the top? I want like a status line!
  1395.  
  1396.  
  1397.                                                 Dave Hess
  1398.  
  1399.  
  1400. ---
  1401.  * Origin: The Antenna Farm - Austin, TX (512-444-1052)  (Opus 1:382/40)
  1402.  
  1403.  
  1404. From:    Ross Wentworth 
  1405. To:      Jon Guthrie                              Msg #56, 27-Jan-89 07:23pm
  1406. Subject: Re: 300 BAUD
  1407.  
  1408.  > Interesting theory.  The way I see it is that most of the
  1409.  > stuff
  1410.  > transmitted by a BBS is garbage that most people ignore
  1411.  > unless they need
  1412.  > it.  Menus, for example, are of no interest at all except
  1413.  > for the one
  1414.  
  1415. When I was a regular caller (before I became a point), the vast majority of my
  1416. time was spent reading one message after another, with very little in the way
  1417. of menus and system messages.  At logon, however, you do have a point.
  1418.  
  1419.  > BTW.  What does all this have to do with Pascal?
  1420.  
  1421. Nothing, I was responding to someone else's statement.  Since it doesn't
  1422. belong here I'll slap myself on the wrist and drop the subject!  Ok?  :-)
  1423.  
  1424.                                     Ross Wentworth
  1425.  
  1426. --- FD 2.00
  1427.  * Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
  1428.  
  1429.  
  1430. From:    Ross Wentworth 
  1431. To:      Dave Goggin                              Msg #57, 27-Jan-89 07:30pm
  1432. Subject: FUNCTION RETURN STRING?
  1433.  
  1434.  > Unless Turbo Pascal is different than regular pascal (in
  1435.  > this case) I don't see how you can return a string, from a
  1436.  > function.  I though you couldn't return structured
  1437.  > variables from a function.
  1438.  
  1439. Turbo Pascal is different.  This is the ONLY structure that Turbo allows you
  1440. to return as a function result.  Pity, since I would prefer to use functions
  1441. in my complex number unit, i.e.
  1442.  
  1443.   Function CADD(C1,C2 : Complex) : Complex;
  1444.  
  1445. Instead of:
  1446.  
  1447.   Procedure CADD(C1,C2 : Complex;Var Complex);
  1448.  
  1449. One Pascal that did allow records to be returned as function results was the
  1450. now dead Marshal Pascal.
  1451.  
  1452.                                     Ross Wentworth
  1453.  
  1454. --- FD 2.00
  1455.  * Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
  1456.  
  1457. *** Part of a conversation.
  1458.  
  1459.  
  1460. From:    Ross Wentworth 
  1461. To:      Dave Hess                                Msg #58, 27-Jan-89 07:35pm
  1462. Subject: Help
  1463.  
  1464.  > different one? I NEED HELP PLEASE! PLEASE PLEASE!  I
  1465.  > declared the top window something like
  1466.  > this...WINDOW(1,1,81,1) and the bottom I think
  1467.  > Window(24,1,104,1)??? What am I doing wrong?
  1468.  
  1469. Windows created by Turbo Pascal's WINDOW procedure only last until you create
  1470. a new one.  It does not support overlapping of any kind (unless you write it
  1471. yourself).  Your best bet is to download a good windows package from your
  1472. local BBS such as TechnoJock or WNDW.
  1473.  
  1474.                                     Ross Wentworth
  1475.  
  1476. --- FD 2.00
  1477.  * Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
  1478.  
  1479. *** Part of a conversation.
  1480.  
  1481.  
  1482. From:    Ross Wentworth 
  1483. To:      Jesper Wolf                              Msg #59, 27-Jan-89 07:46pm
  1484. Subject: Re: STYLE DEBATE #9,005
  1485.  
  1486.  > But I have newer understood why he changed the OTHERWISE
  1487.  > into an ELSE. It might have been something Kahn demanded
  1488.  > from the start but i still dont know why. Does anybody
  1489.  > know?
  1490.  
  1491. Oddly enough, Turbo Pascal for the MAC uses OTHERWISE.
  1492.  
  1493.                                     Ross Wentworth
  1494.  
  1495. --- FD 2.00
  1496.  * Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
  1497.  
  1498. *** Part of a conversation.
  1499.  
  1500.  
  1501. From:    Ross Wentworth 
  1502. To:      Bob Ransom                               Msg #60, 27-Jan-89 07:50pm
  1503. Subject: high water mark
  1504.  
  1505. Somehow your "high water mark" file got scanned into a mail packet.  You might
  1506. want to look into that.
  1507.  
  1508.                                     Ross Wentworth
  1509.  
  1510. --- FD 2.00
  1511.  * Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
  1512.  
  1513.  
  1514. From:    Ross Wentworth 
  1515. To:      Lou Garner Of 507/1                      Msg #61, 27-Jan-89 07:56pm
  1516. Subject: Re: C versus PASCAL
  1517.  
  1518.  > How depressing! I thought the TP 5.0 was about the best
  1519.  > it could be...and have read suggestion after suggestion
  1520.  > and not a one of them was a bad idea!
  1521.  
  1522. No matter what Borland (or anyone else) does, there will always be room for
  1523. improvement.
  1524.  
  1525.                                     Ross Wentworth
  1526.  
  1527. --- FD 2.00
  1528.  * Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
  1529.  
  1530. *** Part of a conversation.
  1531.  
  1532.  
  1533. From:    Kevin Kwast @ 930/1 
  1534. To:      Everyone                                 Msg #62, 28-Jan-89 10:19am
  1535. Subject: Transfer Protocols
  1536.  
  1537. I am using Turbo Pascal 4.0 on a PC-AT clone.  I need the TP4 source
  1538. for file transfer protocols, and the format used to pass control from a
  1539. host BBS to a door..
  1540.  
  1541. Someone back in mgssage 149 asked for the transfer protocols, and
  1542. nobody ever answered..  does anyone know whre they are available?
  1543.  
  1544. --- ConfMail V4.00
  1545.  # Origin: HORIZON_RBBS_(214)881-8346_&_(214)424-3831_<<HST>>_ (8:930/1)
  1546.  * Origin: Network Gateway to RBBS-NET  (RBBS-PC 1:10/8)
  1547.  
  1548. *** There is a reply. See #209.
  1549.  
  1550.  
  1551. From:    Patrick Edwards 
  1552. To:      Mark Cheatle                             Msg #63, 27-Jan-89 02:43pm
  1553. Subject: pascal
  1554.  
  1555.  > Hi,
  1556.  >  I am thinking about taking a class in pascal at CCFL.
  1557.  > Would you
  1558.  > Guys recommend it? And also what do you think the major
  1559.  > advantages does
  1560.  > pascal have? And how can it help me if I learn it? thanks,
  1561.  >
  1562. One advantage is that it is easy to learn and should you pass you could
  1563. probaly continue depending on the way they set-up their courses or you could
  1564. move on ot C then Assembler what ever Fortran, or Cobol (business langauge).
  1565. So I personaly wpuld recommend it but there are others that would care to
  1566. differ. 
  1567.  
  1568. --- ConfMail V4.00
  1569.  * Origin: Northern Nights | Keep Kool| (1:140/48)
  1570.  
  1571. *** There is a reply. See #106.
  1572.  
  1573.  
  1574. From:    Scott Wilson 
  1575. To:      Colten D. Edwards                        Msg #64, 24-Jan-89 08:09am
  1576. Subject: Opus user list
  1577.  
  1578. Hi,
  1579.  > Opint102.5rc is available from the Buffer Board at 1:152/2
  1580.  > and Northern Nights 1:140/48 adn more than likely many
  1581.  > others....
  1582.  
  1583. is there a version 4 one up there in S'toon too? If so I'll reqeust it from
  1584. 48. Thanx, bi,
  1585.  
  1586.     Scott Wilson 1:140/35
  1587.  
  1588. --- FD 2.00
  1589.  * Origin: Magic Fountain Opus, Regina Sask (306)586-2692 Merry Xmas!
  1590. (1:140/35)
  1591.  
  1592. *** There is a reply. See #112.
  1593.  
  1594.  
  1595. From:    Colten D. Edwards 
  1596. To:      George Butts                             Msg #65, 28-Jan-89 04:19am
  1597. Subject: Async10.Arc
  1598.  
  1599. No it compiles cleanly under Masm 5.1 Probably he using an old version of Masm
  1600.  
  1601.  
  1602. --- ConfMail V4.00
  1603.  * Origin: Treasure Isle Private Mail System (1:140/51)
  1604.  
  1605. *** Part of a conversation.
  1606.  
  1607.  
  1608. From:    Greg Franklin 
  1609. To:      Robert Turner                            Msg #66, 27-Jan-89 02:36pm
  1610. Subject: Re: FINDFIRST procedure TP4
  1611.  
  1612.  >     In TP4, I can't seem to get the FINDFIRST routine to find a 
  1613.  > specific  file on any other computer other than mine.  Also, the 
  1614.  > EXEC procedure  will not find the file to execute on anyother 
  1615.  > computer other than mine  aswell. 
  1616.  
  1617. Have you checked your PATH or APPEND strings?  Maybe either of those
  1618. commands is letting you find and exec files that a "normal" computer
  1619. wouldn't locate.
  1620.  
  1621. --- Via OpXpress V1.07ß "Silver"  Greg Franklin, an End User...
  1622.  * Origin: The Migrants BBS Phx. Az. ░▒▓ (602) 264-2328 ▓▒░ (1:114/07)
  1623.  
  1624. *** This is a reply to #27.
  1625.  
  1626.  
  1627. From:    Tim Geisweit 
  1628. To:      Reinhardt Mueller                        Msg #67, 29-Jan-89 07:03am
  1629. Subject: Re: goto's
  1630.  
  1631.  RM> JO> If you're going to program in BASIC I suggest you try TRUE
  1632.  RM> JO> BASIC. Its a version of BASIC by the guys who originally
  1633.  RM> JO> created the language. It does not allow GOTO's and you will
  1634.  RM> JO> soon find that you don't need them at all if you use it.
  1635.  RM> 
  1636.  RM>     Tim, if/when you have lots of existing programs written in
  1637.  RM> BASICA/GWBASIC, you might also try QuickBASIC v4.5 by Microsoft.
  1638.  RM> $99 retail, maybe $70 at discount stores. It's most compatible
  1639.  RM> with interpreted BASIC.
  1640.  RM> 
  1641. JO refers to Joe O'leary, so why are you telling me this?             
  1642.  
  1643.  
  1644. --- msged 1.94S ZTC
  1645.  * Origin: CrossFire BBS  Harrisburg, PA (717)564-9519  (1:150/514)
  1646.  
  1647. *** Part of a conversation.
  1648.  
  1649.  
  1650. From:    Les Fenison 
  1651. To:      Moshe Boochbut                           Msg #68, 24-Jan-89 10:32am
  1652. Subject: Re: interrupt procedures
  1653.  
  1654. > It should do the trick. If it's too brief, reply and I will
  1655. > try to help
  1656. > more.
  1657.  
  1658. Well here is what I used;
  1659.  
  1660. program test;
  1661.  
  1662. uses dos,crt;
  1663.  
  1664. var a : integer;
  1665.  
  1666. procedure comm_stuff; interrupt;
  1667. begin
  1668.      writeln('got the interrupt');
  1669. end;
  1670.  
  1671. begin
  1672.      setintvec($c,@comm_stuff);
  1673.      repeat until 1 = 0;
  1674. end.
  1675.  
  1676. then I made characters come in the comm port and no luck.. I used both $C and
  1677. $B and I made characters come in all 4 comm ports each time and nothing.  I
  1678. experimented with different interupt vectors and got some strange results. The
  1679. book I have here is brain damaged and dosen't list neat things like interrupt
  1680. vectors.  It dosen't even talk about interrupt procedures at all.
  1681. Any ideas??
  1682.  
  1683.                       Les Fenison
  1684.                       Yahweh's BBS
  1685.                       Grangeville, Idaho
  1686.                       8:77/7 or 1:17/55 
  1687.  
  1688. --- ConfMail V3.31
  1689.  * Origin: << Yahweh's BBS >> Grangeville, Id  (208) 983-2724 300/1200/2400
  1690. (8:77/7)
  1691.  
  1692.  
  1693. From:    Terry Gaudet 
  1694. To:      Jonathan Posner                          Msg #69, 26-Jan-89 12:27pm
  1695. Subject: Pascal programming books
  1696.  
  1697. Hi!
  1698. You should try "Borland Osborne Turbo Pacal - The Complete Reference". So far
  1699. this is the most complete one I have found. It goes for about $40 in most book
  1700. stores. If you can't find it check out Camelot Books or La Maison de
  1701. Semi-Conducteurs. The last t
  1702. Sorry. The last time i was at either of them they each had several copies.
  1703. Another good book to go with this one (not too good by itself though) is
  1704. Mastering Turbo-Pascal by Hayden Books.
  1705. Good luck.
  1706. Terry
  1707.  
  1708.  
  1709. --- Opus-CBCS 1.10.vi
  1710.  * Origin: PComm #D5: 167/1 : Montreal : 514/989-9450 (1:167/1.0)
  1711.  
  1712.  
  1713. From:    Terry Gaudet 
  1714. To:      All                                      Msg #70, 26-Jan-89 12:35pm
  1715. Subject: Turbo Pascal 4 & 5
  1716.  
  1717. Hi out there. I see from the messages here that several of you have tried out
  1718. the newer versions of Pascal. Being new to programming (and somewhat ignorant)
  1719. I was wondering if I should upgrade from my ver.3.0. If so which one (4 or 5)
  1720. would you suggest 
  1721. as being the better buy?
  1722. Thanks, Terry
  1723.  
  1724.  
  1725. --- Opus-CBCS 1.10.vi
  1726.  * Origin: PComm #D5: 167/1 : Montreal : 514/989-9450 (1:167/1.0)
  1727.  
  1728. *** There is a reply. See #186.
  1729.  
  1730.  
  1731. From:    David Rutkowski 
  1732. To:      Lee Spivey                               Msg #71, 27-Jan-89 05:53am
  1733. Subject: Re: pascal to `c` transposer
  1734.  
  1735. It's called TP2C and should be generally available on your local BBS's.
  1736.  
  1737.  
  1738.  
  1739. ---
  1740.  * Origin: WOC'n on the DarkSide...The Misadventure Continues... (Opus
  1741. 1:228/5)
  1742.  
  1743.  
  1744. From:    David Rutkowski 
  1745. To:      Jon Guthrie                              Msg #72, 27-Jan-89 06:00am
  1746. Subject: Re: C Versus Pascal
  1747.  
  1748. There's what's best, and then there's what's practical. I would prefer Pascal
  1749. over C if it were generally available for machines other than the PC. I
  1750. routinely write code on the PC and upload it to multi-user machines for
  1751. recompilation. And, with Turbo C 2.0's enhanced debugging capabilities, the
  1752. pitfalls of C programming are a bit easier to overcome. Of course, C is used
  1753. for a lot of huge programs. The discipline for organizing large programs rests
  1754. with the programmers, rather than the language. 
  1755.  
  1756. ---
  1757.  * Origin: WOC'n on the DarkSide...The Misadventure Continues... (Opus
  1758. 1:228/5)
  1759.  
  1760. *** Part of a conversation.
  1761.  
  1762.  
  1763. From:    Jean-paul Louis 
  1764. To:      Eugene Baral                             Msg #73, 28-Jan-88 04:26pm
  1765. Subject: Re: Help requested
  1766.  
  1767. If you're using Turbo Pascal, You should try :
  1768. Procedure SoftBoot;
  1769. Inline($CD/$19);
  1770. That  
  1771. should do it.
  1772. Jean-Paul
  1773. --- QuickBBS v2.03
  1774.  * Origin: INFORMATION SYSTEMS BBS - (919)821-4370 (1:151/129)
  1775.  
  1776.  
  1777. From:    Moshe Boochbut 
  1778. To:      Ben Madison                              Msg #74, 28-Jan-89 06:49pm
  1779. Subject: Re: Modem
  1780.  
  1781. Sorry, but I forgot the subject of my replieing. ccould you please be more
  1782. specifiec. if we are talking about FOSSIL, well, you will have to wait for few
  1783. days, ccause my hard-disk want down..
  1784.          Moshe Boochbut
  1785.  
  1786.  
  1787. ---
  1788.  * Origin: ASCII -Home of TURBO PROGRAMMER- Raleigh (919)782-7752 PCP:NCRTP
  1789. (Opus 1:151/119)
  1790.  
  1791. *** There is a reply. See #164.
  1792.  
  1793.  
  1794. From:    Ray Sun 
  1795. To:      All                                      Msg #75, 28-Jan-89 06:26pm
  1796. Subject: Compatibility
  1797.  
  1798.  
  1799. I want to know why Turbo Pascal 5.0 isn't totally backward compatible with
  1800. Tp4.0 and Tp3.0....
  1801.  
  1802. It should be, like an EGA card having CGA support...You have to go through
  1803. that editing process or UPGRADE to change it, which doesn't actually fix
  1804. anything real.                    --YOU have to go back and change it.
  1805.  
  1806. Hmm...
  1807. --- QuickBBS v2.03
  1808.  * Origin: ** The Express Line, Winterville, GA (404) 742-7736 HST **
  1809. (1:370/22)
  1810.  
  1811.  
  1812. From:    Dan Wulff 
  1813. To:      Edward Samudro                           Msg #76, 24-Jan-89 07:27am
  1814. Subject: Day of the year
  1815.  
  1816. Hi Edward.
  1817.  
  1818. FUNCTION Number_Of_Days(Year,Month:INTEGER):BYTE;
  1819. BEGIN
  1820.   CASE Month OF
  1821.     1,3,5,7,8,10,12: Number_of_Days:=31;
  1822.     4,6,9,11       : Number_of_Days:=30;
  1823.     2 : IF(Year MOD 4=0) AND
  1824.          ((Year MOD 100<>0) OR (Year MOD 400=0)) THEN                         
  1825. Number_Of_Days:=29 ELSE                               Number_Of_Days:=28;
  1826.   END;
  1827. END;
  1828.  
  1829. FUNCTION DayNumber(Year,Month,Day:INTEGER):INTEGER;
  1830. VAR
  1831.   Days,i:INTEGER;
  1832. BEGIN
  1833.   Days:=Day;
  1834.   FOR i:=1 TO Month-1 DO
  1835.     Days:=Days+Number_Of_Days(Year,i);
  1836.   DayNumber:=Days;
  1837. END;
  1838.  
  1839. BEGIN    (* THE MAIN PROGRAM CALL *)
  1840.   WRITELN('The date',y,'-',m,'-',d,' is the day number ',DayNumber(y,m,d));
  1841. END.
  1842.  
  1843. Hope this will help you.
  1844.  
  1845. Dan
  1846.  
  1847. PS! Sorry about the format, but this editor does not allow much.
  1848.  
  1849. ---
  1850.  * Origin: Dragons Lair - The Role Playing Game BBS (Opus 2:231/57)
  1851.  
  1852.  
  1853. From:    Fabiano Fabris 
  1854. To:      Joaquim Homrighausen                     Msg #77, 27-Jan-89 10:19am
  1855. Subject: Re: PASCAL and TAP
  1856.  
  1857. Hello.
  1858.  
  1859.  ->  Most of you are probably not aware (or don't care) of the
  1860.  ->fact that TAP (the TransAtlanticProject) is sending this
  1861.  ->conference along with quite a few other conferences over
  1862.  ->the pond every night. We started TAP as a "echomail
  1863. I didn't know anything about this! Actually, I was wondering how the Echo
  1864. Mail was getting to the States and back, but kinda supposed it went through
  1865. the zone gates somehow. I guess I should have worried about it more.
  1866.  
  1867. Anyway, at this point, tell me what can be done!
  1868.  
  1869.    Fabiano Fabris,  Sysop 2:333/12
  1870. --- QuickBBS v2.03
  1871.  * Origin: -=] THE LINK [=- (* Down with C! *) (2:333/12)
  1872.  
  1873. *** There is a reply. See #80.
  1874.  
  1875.  
  1876. From:    Fabiano Fabris 
  1877. To:      Heikki Levanto                           Msg #78, 27-Jan-89 10:21am
  1878. Subject: Re: string+string
  1879.  
  1880.  
  1881. Just wanted to say that I admire all the effort you're putting into this
  1882. echo, like writing out routines for the benifit of all.
  1883.  
  1884. Hats off to you!
  1885. --- QuickBBS v2.03
  1886.  * Origin: -=] THE LINK [=- (* Down with C! *) (2:333/12)
  1887.  
  1888.  
  1889. From:    Fabiano Fabris 
  1890. To:      Heikki Levanto                           Msg #79, 27-Jan-89 10:23am
  1891. Subject: Re: C versus PASCAL
  1892.  
  1893.  
  1894.  ->BTW, I told of a small bug here, you can't put an init
  1895.  ->section of an unit into an include file.  Has that message
  1896.  ->disappeared, or don't you folks care ?
  1897.  
  1898. I saw the msg, but haven't had a chance to try it. I don't usually write
  1899. large programs, so it isn't often that I need to write Units; and even when
  1900. I do, they don't need INIT sections.
  1901. --- QuickBBS v2.03
  1902.  * Origin: -=] THE LINK [=- (* Down with C! *) (2:333/12)
  1903.  
  1904. *** Part of a conversation.
  1905.  
  1906.  
  1907. From:    Jesper Wolf 
  1908. To:      Joaquim Homrighausen                     Msg #80, 27-Jan-89 03:02pm
  1909. Subject: PASCAL and TAP
  1910.  
  1911. Hello Joaquim.
  1912. I think it would be a pitty if you close down Pascal and C_echo. How about
  1913. making a plea for donations. I didnt even know that you were transporting this
  1914. echo. If you were to send out a message once a month asking for donations i
  1915. think people would pay. Once you did it in interuser and as far as I know that
  1916. payed off.
  1917. I am unemployed and dont have much money, but if I can do anything to help
  1918. Pascal and C_echo to keep comming I am willing to pay. I dont even have your
  1919. postal account number (or that of Joakim) so I cant pay until i get it.
  1920. So please send us such a message and see what happens. I have been on this
  1921. echo for quite a while but have newer seen any plea for contributions.
  1922.  
  1923. Greetings from Denmark.
  1924.  
  1925.  
  1926. --- msged 1.943S TC (JW)
  1927.  * Origin: Wolf's Point. Nærum, Denmark.  (fidonet 2:230/30.10)
  1928.  
  1929. *** Part of a conversation.
  1930.  
  1931.  
  1932. From:    Tomas Gradin 
  1933. To:      Ross Wentworth                           Msg #81, 28-Jan-89 04:32pm
  1934. Subject: TPPOP18B
  1935.  
  1936. What is it? And, where can I find it? ShareWare?
  1937.  
  1938. Best Regards,
  1939. Tomas 
  1940.  
  1941. --- msged 1.96L TC (TG)
  1942.  * Origin: Walkabout Creek (fidonet 2:501/139)
  1943.  
  1944. *** There is a reply. See #194.
  1945.  
  1946.  
  1947. From:    Joaquim Homrighausen 
  1948. To:      Fabiano Fabris                           Msg #82, 29-Jan-89 04:37am
  1949. Subject: Re: PASCAL and TAP
  1950.  
  1951.  > I didn't know anything about this! Actually, I was
  1952.  > wondering how the Echo Mail was getting to the States
  1953.  > and back, but kinda supposed it went through the zone
  1954.  > gates somehow. I guess I should have worried about
  1955.  > it more.
  1956.  
  1957.   What can be done is that people start worrying about how they should get
  1958. their echomail. Most people reading echomail/groumail conferences don't give a
  1959. shit about who's footing the bill for it.
  1960.  
  1961.   The problem is that when I (TAP/1, USA) and Joakim Hernberg (TAP/2, Europe)
  1962. ask for contributions etc. people say "oh yes, what a marvelous idea".. and
  1963. that's the end of it.
  1964.  
  1965.   It takes regular contributions, say $5 - $10 / month / user and we should be
  1966. in good shape. Paying for something you use, usually forces a somewhat better
  1967. quality in conferences as well.
  1968.  
  1969.                               -joaquim
  1970.                                TAP/1 Coordinator
  1971.  
  1972.  
  1973. --- FD TosScan .17 (286)
  1974.  * Origin: Home of the "Protocol Engine" (PE) (1:135/20.1)
  1975.  
  1976. *** Part of a conversation.
  1977.  
  1978.  
  1979. From:    Joaquim Homrighausen 
  1980. To:      All                                      Msg #83, 29-Jan-89 04:48am
  1981. Subject: TAP and PASCAL
  1982.  
  1983.  
  1984.  The TransAtlanticProject
  1985.  Echomail, Zone 1<>Zone 2
  1986.  
  1987.  This conference is shipped to Europe every night by TAP. When TAP/1 calls
  1988. TAP/2, it'll pickup any mail waiting and distribute it in Zone 1.
  1989.  
  1990.  I and Joakim Hernberg started the TransAtlanticProject (TAP) in the winter of
  1991. 1987 and would like to continue. But without your help it won't work. We need
  1992. contributions regularly. Nothing big, $5-$10 per month or so will do.
  1993.  
  1994.  We're by no means trying to make money out of this (it would be ridiculous to
  1995. even try), but my phone bill for TAP echomail has grown and is still growing
  1996. (we're beyond _expensive_). We also think that if the readers of this
  1997. conference contributes, it'll force a somewhat higher quality of the
  1998. conference.
  1999.  
  2000.  To contribute, send whatever you feel this conference is worth to you to
  2001.  
  2002.  Joaquim Homrighausen
  2003.  11466-Y SW 109th RD
  2004.  Miami FL 33176
  2005.  
  2006.  Thank you.
  2007.  
  2008.                               -joaquim
  2009.                               TAP/1 Coordinator
  2010.  
  2011.  
  2012. --- FD TosScan .17 (286)
  2013.  * Origin: Home of the "Protocol Engine" (PE) (1:135/20.1)
  2014.  
  2015. *** There is a reply. See #140.
  2016.  
  2017.  
  2018. From:    Mark Howard 
  2019. To:      Steve Butler                             Msg #84, 29-Jan-89 02:47pm
  2020. Subject: Re: File Move Procedure
  2021.  
  2022.  >  > Would anybody know where I might be able to get a
  2023.  >  > procedure to move a file
  2024.  >  > from one directory to another directory.
  2025.  >
  2026.  > Look for RED.* or MV.* on most BBS around the country.  I'm sure
  2027.  > that 138/3 has them available. (206/845-4257)
  2028.  
  2029. The key word here was procedure.  Tom wanted to do it withing a Pascal
  2030. program, without shelling to DOS.  By the time I had contacted him, he had
  2031. already realized the the Rename procedure will do this quite nicely, as long
  2032. as the file isn't being moved to another drive.
  2033.  
  2034. -m
  2035.  
  2036. --- FD 2.00
  2037.  * Origin: QuickBBS East [HST] - Distribution & Support (1:260/340)
  2038.  
  2039. *** This is a reply to #20.
  2040.  
  2041.  
  2042. From:    Mark Howard 
  2043. To:      Jesper Wolf                              Msg #85, 29-Jan-89 02:52pm
  2044. Subject: TESSERACT
  2045.  
  2046.  > I got hold of a version of tesseract for Turbopascal ver 4 but
  2047.  > need one for Turbopascal Ver 5. Does anyone know if that one
  2048.  > exists?
  2049.  
  2050. Call (215)884-3373.  The Tesseract Development Team.
  2051.  
  2052. -m
  2053.  
  2054. --- FD 2.00
  2055.  * Origin: QuickBBS East [HST] - Distribution & Support (1:260/340)
  2056.  
  2057. *** There is a reply. See #183.
  2058.  
  2059.  
  2060. From:    Neil Sharma 
  2061. To:      All                                      Msg #86, 29-Jan-89 12:17pm
  2062. Subject: tpboard 5.0
  2063.  
  2064. I am looking for the source to Tpboard 5.0 does anyone know where i can find
  2065. it?? thanks!!! The reason i need it is cuz i run a bbs using Tpboard (a pascal
  2066. bbs) and have been unable to find it. Thanks for any help!!
  2067.  
  2068.  
  2069. ---
  2070.  * Origin: Waterford Software BBS, Silver Spring, Md. (Opus 1:109/505)
  2071.  
  2072. *** There is a reply. See #225.
  2073.  
  2074.  
  2075. From:    Rod Bartlett 
  2076. To:      Steve Hartmann                           Msg #87, 28-Jan-89 11:38am
  2077. Subject: Re: DOS Commands.
  2078.  
  2079.  SH>  > I was wondering if there was a way to call DOS internal
  2080.  SH>  > commands (example: copy, del, etc.) from within a program.
  2081.  SH>  > Also, is there a way to run another program and return
  2082.  SH>  > to the current one? (In essence a DOS shell). I mean without
  2083.  SH> 
  2084.  SH> If you are using Turbo Pascal, Just use the EXEC procedure.  If your 
  2085.  SH> are not using Turbo pascal, Look in your DOS manual .. I beleive there 
  2086.  SH> is a DOS function for running Child Processes.
  2087.  
  2088. Actually, you must be using TP version 4.0 or later to use the EXEC procedure.
  2089. As for the use of internal DOS commands, the EXEC call would look something
  2090. like the following:
  2091.  
  2092.    EXEC('\COMMAND.COM','/C type autoexec.bat');
  2093.  
  2094. If you're not using Turbo Pascal 4.0 or later, you have to use DOS function
  2095. call $4B.  This function is a bit too complex to cover in a message.  It is
  2096. covered in some detail in a variety of books, my favorite being "Advanced
  2097. MS-DOS" by Ray Duncan.
  2098.  
  2099.  
  2100. --- msged 1.94S ZTC
  2101.  * Origin: Norwegian Fjord  (1:109/117.102)
  2102.  
  2103.  
  2104. From:    Rod Bartlett 
  2105. To:      Holger Schurig                           Msg #88, 28-Jan-89 11:50am
  2106. Subject: Re: C versus PASCAL
  2107.  
  2108.  HS> This is true. But the editor under 5.0 is slower then the one under 4.0
  2109.  HS> (which was slower than 3.0, too). Borland has become the same illness
  2110.  HS> as the rest of the pc-world: getting to big (because of using high-
  2111.  HS> level-language code) and to slow (same reason). A good compiler must
  2112.  HS> programmed in machine language, everything other makes him big. And a
  2113.  HS> big compiler isn't usable for programs with many symbols to memorize.
  2114.  HS>   Viele Gruesse, Holger
  2115.  
  2116. One of the major reasons that TP 5.0 is larger than it's predecessors is
  2117. because they keep adding new functionality.  I disliked the larger size when I
  2118. upgraded from TP 3.0 to 4.0 but soon found myself addicted to units and the
  2119. smaller program size possible.  Now, version 5.0 gives us the integrated
  2120. debugger and the ability to put the editor buffer in EMS.  It's a much more
  2121. powerful language than ever before and for that I'm willing to accept the
  2122. tradeoff of the larger compiler size.  Besides, when TP first came out, the
  2123. average memory size was smaller and most machines didn't have hard drives. 
  2124. Now that the opposite is true, why shouldn't Borland use machines to their
  2125. fullest capability?
  2126.    Rod Bartlett
  2127.  
  2128.  
  2129. --- msged 1.94S ZTC
  2130.  * Origin: Norwegian Fjord  (1:109/117.102)
  2131.  
  2132. *** Part of a conversation.
  2133.  
  2134.  
  2135. From:    Frank Barrus 
  2136. To:      Robert Turner                            Msg #89, 25-Jan-89 12:02pm
  2137. Subject: Re: File Existance...
  2138.  
  2139. Okay, I'll check it out... Hopefully the record will return
  2140. the file size properly too.  I think I'll check that out
  2141. this afternoon, and update my standard I/O units for my BBS
  2142. source code.
  2143. When you say that it didn't work properly on any other computer,
  2144. do you mean the way you did it, or just the FindFirst procedure?
  2145. I can't see why it wouldn't work- it uses standard MSDOS calls,
  2146. or so I thought. What machine do you have, and what machine did
  2147. you test it on?
  2148. Well, I wish you luck, (and me luck too..) and I'll keep
  2149. you informed as to the results. (Please write back to remind
  2150. me or I might forget though..)
  2151.   
  2152.     - Frank  (oh, and no need to call me 'sir' - I'm just another
  2153. friendly Pascal programmer...)
  2154.  
  2155.  
  2156. ---
  2157.  * Origin: Dave's OPUS!/BINK *SDS*SDN*HST* Lowell MA (Opus 1:324/275)
  2158.  
  2159. *** There is a reply. See #90.
  2160.  
  2161.  
  2162. From:    Frank Barrus 
  2163. To:      Hector Santos                            Msg #90, 25-Jan-89 12:08pm
  2164. Subject: Re: File Existance...
  2165.  
  2166. Thanks for the help. I'll try it now...
  2167.  
  2168.  
  2169. ---
  2170.  * Origin: Dave's OPUS!/BINK *SDS*SDN*HST* Lowell MA (Opus 1:324/275)
  2171.  
  2172. *** This is a reply to #89.
  2173.  
  2174.  
  2175. From:    dj murdoch Of 324/1 
  2176. To:      Gary Doughty                             Msg #91, 21-Jan-89 09:07am
  2177. Subject: Quick Sort
  2178.  
  2179. Here's the sort unit I use.  It only works in version 5, because of the
  2180. procedural types, but you should be able to modify it for other versions.
  2181.  
  2182. --------------- SORTS.PAS --------------
  2183. unit sorts;
  2184.  
  2185. interface
  2186.  
  2187. type
  2188.   float = double;
  2189.   comparison = function(a,b:pointer):boolean;
  2190.   array_function = function(i:integer):float;
  2191.  
  2192. procedure list_sort(var start:pointer; greater:comparison);
  2193. { Procedure to do list insertion sort on the linked list pointed to by start.
  2194.   Greater points to the entry for a far function with declaration
  2195.     function greater^(i,j:pointer):boolean which returns true if i^ > j^
  2196.     and false otherwise.
  2197.   Assumes that pointers point to pointers, i.e. links should be the first
  2198.   element of records in the list.
  2199.   N.B.  If enough memory is available, it seems to be faster to make the list
  2200.   into an array, use arr_sort, and then un_make the array when there are
  2201.   more than about 100 records.
  2202.   }
  2203.  
  2204. procedure arr_sort(var arr;size:word;greater:comparison);
  2205. { Procedure to do a Quicksort on the array of pointers pointed to by arr.
  2206.   Greater is as in list_sort.  Makes no assumptions about what pointers
  2207.   point to.
  2208.   Based on Quicksort as given in Steal This Code, by F.D. Boswell, Watcom
  2209. 1986.
  2210. }
  2211.  
  2212. function count_list(list:pointer):longint;
  2213. { Counts the number of elements in the list}
  2214.  
  2215. function make_array(list:pointer;size:longint;var arr:pointer):boolean;
  2216. { Attempts to make an array of pointers from the list.  Returns true on
  2217.   success, false if it failed because not enough memory is available. Always
  2218.   creates an array with size elements, but only fills those up to the
  2219.   smaller of the actual size of the list or size. }
  2220.  
  2221. procedure un_make_array(var list:pointer;size:integer;var arr);
  2222. { Adjusts the pointers in the list to reflect the ordering in the array.
  2223.   Doesn't check that they are all valid - be sure size reflects the
  2224.   true number of pointers in the array. }
  2225.  
  2226. function locate(xx:array_function; n:integer; x:float):integer;
  2227. { Given a float-valued function on the integers 1..n which is monotone
  2228.   increasing or decreasing, and given a value x, returns an index j such
  2229.   that x is between xx[j] and xx[j+1].  Returned values of 0 and n indicate
  2230.   that x is out of range.  From Numerical Recipes in C, Press et al.
  2231. Translated
  2232.   to Pascal by djm }
  2233.  
  2234. function hunt(xx:array_function; n:integer; x:float; guess:integer):integer;
  2235. {  Given a float valued function xx on integer values 1..n, and given
  2236.    a value x, returns a value j such that x is between xx(j) and xx(j+1).
  2237.    xx must be monotonic, either increasing or decreasing.  Values of 0 or n
  2238.    are returned to signal that x is out of range.  Guess on input is taken as
  2239.    the initial guess for the value of hunt on output.  From Press et al,
  2240.    Numerical Recipes in C, translated to Pascal by djm.
  2241. }
  2242.  
  2243. implementation
  2244.  
  2245. type
  2246.   list_ptr = ^list_rec;
  2247.   list_rec = record
  2248.     next : list_ptr;
  2249.   end;
  2250.   ptr_array = array[1..16380] of pointer;
  2251.  
  2252. procedure list_sort(var start:pointer; greater:comparison);
  2253. var
  2254.   first,rest,current,next:list_ptr;
  2255. begin
  2256.   rest := list_ptr(start)^.next;     { Rest points to the uninserted part of
  2257. the list }
  2258.   first := start;          { first is a fake first entry in the new list }
  2259.   first^.next := nil;
  2260.   start := @first;
  2261.   while rest <> nil do
  2262.   begin
  2263.     current := start;
  2264.     next := current^.next;
  2265.     while (next <> nil) and (not greater(next,rest)) do
  2266.     begin
  2267.       current := next;
  2268.       next := current^.next;
  2269.     end;
  2270.     current^.next := rest;
  2271.     current := rest;
  2272.     rest := rest^.next;
  2273.     current^.next := next;
  2274.   end;
  2275.   start := first;
  2276. end;
  2277.  
  2278. procedure arr_sort(var arr;size:word;greater:comparison);
  2279. { Procedure to do a Quicksort on the array of pointers pointed to by arr.
  2280.   Greater is as in list_sort.  Makes no assumptions about what pointers
  2281.   point to.
  2282.   Based on Quicksort as given in Steal This Code, by F.D. Boswell, Watcom
  2283. 1986.
  2284. }
  2285. var
  2286.   a:ptr_array absolute arr;
  2287.  
  2288.   procedure quick(first,last : word);
  2289.   var
  2290.     pivot : pointer;
  2291.     temp : pointer;
  2292.     scanright, scanleft : word;
  2293.   begin
  2294.     if (first < last) then
  2295.     begin
  2296.       pivot := a[first];
  2297.       scanright := first;
  2298.       scanleft := last;
  2299.       while scanright < scanleft do
  2300.       begin
  2301.         if greater(a[scanright+1], pivot) then
  2302.         begin
  2303.           if not greater(a[scanleft], pivot) then
  2304.           begin
  2305.             temp := a[scanleft];
  2306.             inc(scanright);
  2307.             a[scanleft] := a[scanright];
  2308.             a[scanright] := temp;
  2309.             dec(scanleft);
  2310.           end
  2311.           else
  2312.             dec(scanleft);
  2313.         end
  2314.         else
  2315.           inc(scanright);
  2316.       end;
  2317.       temp := a[scanright];
  2318.       a[scanright] := a[first];
  2319.       a[first] := temp;
  2320.       quick(first, scanright-1);
  2321.       quick(scanright+1, last);
  2322.     end;
  2323.   end;
  2324. begin  {arr_sort}
  2325.   quick(1, size);
  2326. end;
  2327.  
  2328.  
  2329. function count_list(list:pointer):longint;
  2330. { Counts the number of elements in a list }
  2331. var
  2332.   l:list_ptr absolute list;
  2333.   size:longint;
  2334. begin
  2335.   size := 0;
  2336.   while l <> nil do
  2337.   begin
  2338.     inc(size);
  2339.     l := l^.next;
  2340.   end;
  2341.   count_list := size;
  2342. end;
  2343.  
  2344. function make_array(list:pointer;size:longint;var arr:pointer):boolean;
  2345. { Attempts to make an array of pointers from the list.  Returns true on
  2346.   success, false if it failed because not enough memory is available }
  2347. var
  2348.   l:list_ptr absolute list;
  2349.   mem_needed:longint;
  2350.   a:^ptr_array absolute arr;
  2351.   i:integer;
  2352. begin
  2353.   mem_needed := size*sizeof(pointer);
  2354.   if (mem_needed > 65520) or (mem_needed > MemAvail) then
  2355.   begin
  2356.     make_array := false;
  2357.     exit;
  2358.   end;
  2359.   GetMem(a,mem_needed);
  2360.   i := 0;
  2361.   while (i<size) and (l <> nil) do
  2362.   begin
  2363.     inc(i);
  2364.     a^[i] := l;
  2365.     l := l^.next;
  2366.   end;
  2367.   make_array := true;
  2368. end;
  2369.  
  2370. procedure un_make_array(var list:pointer;size:integer;var arr);
  2371. { Adjusts the pointers in the list to reflect the ordering in the array.
  2372.   Doesn't check that they are all valid - be sure size reflects the
  2373.   true number of pointers in the array. }
  2374. var
  2375.   l:list_ptr absolute list;
  2376.   current,next:list_ptr;
  2377.   a:ptr_array absolute arr;
  2378.   i:integer;
  2379. begin
  2380.   l := a[1];
  2381.   current := l;
  2382.   for i := 2 to size do
  2383.   begin
  2384.     next := a[i];
  2385.     current^.next := next;
  2386.     current := next;
  2387.   end;
  2388.   current^.next := nil;
  2389. end;
  2390.  
  2391. function locate(xx:array_function; n:integer; x:float):integer;
  2392. { Given a float-valued function on the integers 1..n which is monotone
  2393.   increasing or decreasing, and given a value x, returns an index j such
  2394.   that x is between xx[j] and xx[j+1].  Returned values of 0 and n indicate
  2395.   that x is out of range.  From Numerical Recipes in C, Press et al.
  2396. Translated
  2397.   to Pascal by djm }
  2398. var
  2399.   ascnd : boolean;
  2400.   ju,jm,jl : integer;
  2401.  
  2402. begin
  2403.   jl := 0;                       { initialize lower }
  2404.   ju := n+1;                     { initialize upper }
  2405.   ascnd := xx(n) > xx(1);
  2406.   while (ju-jl > 1) do
  2407.   begin
  2408.     jm := (ju+jl) shr 1;
  2409.     if ((x > xx(jm)) = ascnd) then
  2410.       jl := jm
  2411.     else
  2412.       ju := jm;
  2413.   end;
  2414.   locate := jl;
  2415. end;
  2416.  
  2417. function hunt(xx:array_function; n:integer; x:float; guess:integer):integer;
  2418. {  Given a float valued function xx on integer values 1..n, and given
  2419.    a value x, returns a value j such that x is between xx(j) and xx(j+1).
  2420.    xx must be monotonic, either increasing or decreasing.  Values of 0 or n
  2421.    are returned to signal that x is out of range.  Guess on input is taken as
  2422.    the initial guess for the value of hunt on output.  From Press et al,
  2423.    Numerical Recipes in C, translated to Pascal by djm.
  2424. }
  2425. var
  2426.   jlo,jm,jhi,incr :integer;
  2427.   ascnd : boolean;
  2428. label
  2429.   break1,break2;
  2430.  
  2431. begin
  2432.   ascnd := (xx(n) > xx(1));
  2433.   if (guess <= 0) or (guess >= n) then
  2434.   begin
  2435.     jlo := 0;                              { Input guess not useful. }
  2436.     jhi := n+1;
  2437.   end
  2438.   else
  2439.   begin
  2440.     jlo := guess;
  2441.     incr := 1;
  2442.     if (x >= xx(jlo)) = ascnd then        { hunt up }
  2443.     begin
  2444.       if (jlo = n) then
  2445.       begin
  2446.         hunt := jlo;
  2447.         exit;
  2448.  
  2449.  
  2450. --- ConfMail V4.00
  2451.  * Origin: Shakers BBs ... -=-{ SDS,SDN NET 324 }-=- (1:324/170)
  2452.  
  2453. *** Part of a conversation.
  2454.  
  2455.  
  2456. From:    Anne Wilson 
  2457. To:      All                                      Msg #92, 29-Jan-89 01:01pm
  2458. Subject: Check Printer Status
  2459.  
  2460. Can anyone help me find some code that will check to see if printer is ready,
  2461. & if not let my program recover from the error. I have looked in numerous
  2462. books, but the code I've found is different in all & none of it works.   
  2463. Thanks, Anne.
  2464.  
  2465.  
  2466. ---
  2467.  * Origin: SoundingBoard 713-821-4148 Houston `Just Say NOpus' (Opus 1:106/12)
  2468.  
  2469. *** There is a reply. See #94.
  2470.  
  2471.  
  2472. From:    Chris Cavers 
  2473. To:      All                                      Msg #93, 29-Jan-89 02:51pm
  2474. Subject: 3 points
  2475.  
  2476. Someone mentioned a statement like:
  2477. IF (boolean expression) THEN ;
  2478. This should work because the definition of the Pascal language 
  2479. accepts NULL statements as OK.
  2480. That is why the following code will work
  2481.  
  2482. IF (true) THEN
  2483. BEGIN
  2484. END;
  2485.  
  2486.  
  2487. Also, someone asked about the printer status.
  2488. use the interrupt function to call the dos interrupt that reads the printer
  2489. status...it will tell you if the printer is on/ofline out of paper and other
  2490. things...ask someone that has a programmer's reference for dos about the 
  2491. printer interrupt....if not, leave me mail and i'll get you the info.
  2492.  
  2493.  
  2494. To our friends in Europe,
  2495.    I have heard that Modula-2 is very popular over there.
  2496. Can anyone confirm this?
  2497.  
  2498. C
  2499.  
  2500.  
  2501. --- TAGMAIL v0.22.02 Beta
  2502.  * Origin: My Private Hell -- Houston,Tx (713)980-4824 (1:106/666.0)
  2503.  
  2504.  
  2505. From:    Rich Myers 
  2506. To:      Anne Wilson                              Msg #94, 29-Jan-89 05:02pm
  2507. Subject: Re: Check Printer Status
  2508.  
  2509.  
  2510.  
  2511.  AW>Can anyone help me find some code that will check to see if printer 
  2512.  AW>is ready, & if not let my program recover from the error. I have 
  2513.  AW>looked in numerous books, but the code I've found is different 
  2514.  AW>in all & none of it works.    Thanks, Anne. 
  2515.  AW> 
  2516.  
  2517. This function came out of some code I had laying around.  I did not write it
  2518. nor do I know who did.  It works for me on most printers and I hope it will
  2519. work for you. 
  2520.  
  2521. function printer_ready :boolean; var Recpack : registers; begin 
  2522.     with recpack do 
  2523.     begin 
  2524.         ah := 2; 
  2525.         dx := 0; 
  2526.         intr($17,recpack); 
  2527.         if ah = 144 then 
  2528.            printer_ready := true 
  2529.         else 
  2530.            printer_ready := false; 
  2531.     end; 
  2532. end; 
  2533.  
  2534.  
  2535. Rich 
  2536.  
  2537.   
  2538.  
  2539. ---
  2540.  * Origin: The Twilight Zone (Opus 1:106/301)
  2541.  
  2542. *** This is a reply to #92.
  2543.  
  2544.  
  2545. From:    Dave Goggin 
  2546. To:      Jon Guthrie                              Msg #95, 29-Jan-89 12:45pm
  2547. Subject: Re: COMMENT BRACKETS
  2548.  
  2549.   WELL, that you ask, the term program is the gulity one.  basically my
  2550. machine doen't have curly brackets, but the term program redefined the
  2551. character set to give one, but left the other one there as the clearscreen. I
  2552. think its stupid too.  
  2553. --- TBBS v2.0
  2554.  * Origin: G.A.D.M. Multi-User TBBS Hayward,CA.(415) 581-3019  (161/208)
  2555.  
  2556.  
  2557. From:    Dave Goggin 
  2558. To:      Dj Murdoch                               Msg #96, 29-Jan-89 12:58pm
  2559. Subject: Re: NEXT TP VERSION
  2560.  
  2561. did you send mine too?
  2562. --- TBBS v2.0
  2563.  * Origin: G.A.D.M. Multi-User TBBS Hayward,CA.(415) 581-3019  (161/208)
  2564.  
  2565. *** There is a reply. See #205.
  2566.  
  2567.  
  2568. From:    Dave Goggin 
  2569. To:      Doug Lewis                               Msg #97, 29-Jan-89 01:05pm
  2570. Subject: Re: YEAR 2000
  2571.  
  2572. I believe that although 2000 is a leap year, it doesn't have the leapday added
  2573. because 2000 MOD 400 = 0.
  2574. --- TBBS v2.0
  2575.  * Origin: G.A.D.M. Multi-User TBBS Hayward,CA.(415) 581-3019  (161/208)
  2576.  
  2577. *** There is a reply. See #158.
  2578.  
  2579.  
  2580. From:    Tony Hsieh 
  2581. To:      Mike Janke                               Msg #98, 29-Jan-89 07:38pm
  2582. Subject: Re: HELP ON THE WAY
  2583.  
  2584. The statement
  2585. IF READKEY=#0 then ;
  2586. means that it's going to call the function READKEY, but not do anything. It's
  2587. just as if READKEY was a procedure; but since it isn't, you have to do
  2588. something like If readkey=#0 then;
  2589. the reason for the semi-colon immediately after the then is so that it'll mean
  2590. "do nothing."
  2591. --- TBBS v2.0
  2592.  * Origin: G.A.D.M. Multi-User TBBS Hayward,CA.(415) 581-3019  (161/208)
  2593.  
  2594. *** Part of a conversation.
  2595.  
  2596.  
  2597. From:    Robert Bequette 
  2598. To:      Mike Janke                               Msg #99, 30-Jan-89 01:19pm
  2599. Subject: Re: Help On The Way
  2600.  
  2601. Sure thing.  The "THEN ;" just tells it to execute a null instruction
  2602. (nothing) if the condition is TRUE.
  2603.  
  2604.  
  2605. ---
  2606.  * Origin: NightLine-1/HST, Mather AFB Ca, (916)362-0715 <HST:362-1755> (Opus
  2607. 1:203/39)
  2608.  
  2609. *** Part of a conversation.
  2610.  
  2611.  
  2612. From:    Phil Barnes 
  2613. To:      All                                      Msg #100, 30-Jan-89 04:45pm
  2614. Subject: Conversion Utilities
  2615.  
  2616. Can someone tell me where I can get a set of coversion utilities?
  2617. (eg, C to PASCAL, BASIC to PASCAL, ASM to PASCAL)
  2618.  
  2619. Thanks in advance,
  2620.      Phil..
  2621.  
  2622. --- FD 2.00
  2623.  * Origin: The Fortress! Running Turbo(Pascal) Quick(BBS) - (1:286/704)
  2624.  
  2625.  
  2626. From:    Dave Goggin 
  2627. To:      Joaquim Homrighausen                     Msg #101, 30-Jan-89 01:53pm
  2628. Subject: Re: PASCAL AND TAP
  2629.  
  2630. i donated a big amount just today to help out.  this is a great service.
  2631. --- TBBS v2.0
  2632.  * Origin: G.A.D.M. Multi-User TBBS Hayward,CA.(415) 581-3019  (161/208)
  2633.  
  2634. *** This is a reply to #82.
  2635.  
  2636.  
  2637. From:    Rolf Thomassen 
  2638. To:      Tom Freedy                               Msg #102, 26-Jan-89 10:26am
  2639. Subject: Help
  2640.  
  2641.  > Hello all, i just got a Turbo Pascal file from the States, and i want to
  2642.  > change it to run in Turbo 5. The problem is this
  2643.  >        Sum :Byte Absolute Cseg:$0080;
  2644.  > that is my problem, can anybody tell me how to change it?
  2645.  
  2646. You just change it to:
  2647.  
  2648.    Sum : BYTE absolute PreFix:$0080;
  2649.  
  2650. * RT *
  2651.  
  2652. --- ConfMail V3.31
  2653.  * Origin: Thunderbolt CBCS, Denmark [+45-2-951323 #CM] (2:231/60)
  2654.  
  2655. *** Part of a conversation.
  2656.  
  2657.  
  2658. From:    Wesley Williams 
  2659. To:      Andy Lester                              Msg #103, 29-Jan-88 06:32pm
  2660. Subject: Re: Accessing clock
  2661.  
  2662. -> stop" procedures in Pascal.  The exception that I can think
  2663. -> of  is Turbo's Sound() procedure.
  2664. Yes, and it can be annoting at times also!
  2665.  
  2666. Thanks,
  2667. WW]I[
  2668. --- QuickBBS v2.03
  2669.  * Origin: Down in Music City, Pascal Lives (1:116/31)
  2670.  
  2671.  
  2672. From:    Soloman Blue 
  2673. To:      Ross Wentworth                           Msg #104, 29-Jan-89 08:39pm
  2674. Subject: Re: Pascal Sucks
  2675.  
  2676. Ross--
  2677.   The message regarding Howard Jiang and his views toward Pascal:
  2678.  >   IReally Think Pascal Sucks !!!!! Sucks So Bad That I Cant
  2679.  > Even get a  > Taste!!!!!!    You Pascal Programers Bit The Big One!!!!!!
  2680.  >             If You Have any Comments to me call Me at
  2681.  >                          602-297-6490
  2682.  
  2683. This is obviously an immature act perpetrated by children.  Also it is a
  2684. 'hack' of sorts.  Someone got a hold of Mr. Jiang's password and proceeded to
  2685. spread the word, so to speak.  I don't think Howard gets to these parts so
  2686. that's why I am acting in his defense.
  2687.  
  2688. Soloman Blue
  2689. --- QuickBBS v2.03
  2690.  * Origin: The Hour Glass SDNet/Works! Region 15 SDNRC (1:300/12)
  2691.  
  2692. *** Part of a conversation.
  2693.  
  2694.  
  2695. From:    Syd Kahn 
  2696. To:      All                                      Msg #105, 08-Feb-89 05:48am
  2697. Subject: Printing Graphics
  2698.  
  2699. I have seen all these toolboxes, both Shareware and Pay, but as of yet have
  2700. not seen any that support printing a graphics screen. 
  2701.   
  2702. Could some kind soul please provide: 
  2703.   
  2704.  1) Name of a tollbox that prints graphics. 
  2705.             -or- 
  2706.  2) A Pascal book that has routine primitives. 
  2707.  
  2708.  It neither of these exist, maybe someone can point me to 
  2709. articles/books that outline the various screen structures, and I'll have to
  2710. home brew some.   
  2711.   
  2712.  Be sure that when I am finished, I'll share it with everyone 
  2713. here.  It would be the least I could do for all the usefull code fragments
  2714. that makes my life so much easier. 
  2715.   
  2716.  Sincerly 
  2717.  Syd Kahn 
  2718.  
  2719. ---
  2720.  * Origin: Komputer Klassified, WOCing in the City at night (Opus 1:102/731)
  2721.  
  2722. *** There is a reply. See #196.
  2723.  
  2724.  
  2725. From:    Brian Matlock 
  2726. To:      All                                      Msg #106, 30-Jan-88 08:57pm
  2727. Subject: PASCAL
  2728.  
  2729. Any PASCAL Programmers out there?
  2730. --- QuickBBS v2.03
  2731.  * Origin: WriteLn('I`ve got Pascal's Elbow!');  Connect 2400! (1:130/39)
  2732.  
  2733. *** Part of a conversation.
  2734.  
  2735.  
  2736. From:    Ben Madison 
  2737. To:      Joseph Dejesus                           Msg #107, 29-Jan-89 03:41pm
  2738. Subject: BBS
  2739.  
  2740. I hate to say it but I haven't the foggiest notion as to where to get it, but
  2741. I do know that WWIV BBS is written in Pascal, and that there is a version
  2742. floating around which has been converted to TP5.0.  
  2743. TPBoard is also written in TP, but I think that there are several other
  2744. commercial units required to compile it, and again I don't know where to get
  2745. the source.  (I have left a message concerning the source to the SysOp of The
  2746. Pass TPBoard, but so far have received no reply...  we talked in late '88 and
  2747. he said that they were about to quit releasing source, so they might have
  2748. already - hope not!)
  2749. If you find anything out then please post it, as I would be very interested in
  2750. hearing it...
  2751. jbm
  2752.  
  2753.  
  2754. --- Opus-CBCS 1.10.vi
  2755.  * Origin: Crystal Palace  The Ghost in the Machine  (1:382/1.0)
  2756.  
  2757. *** There is a reply. See #132.
  2758.  
  2759.  
  2760. From:    Ben Madison 
  2761. To:      George Butts                             Msg #108, 29-Jan-89 03:53pm
  2762. Subject: Async10.Arc
  2763.  
  2764. I have ASYNC10 running no problem - it was simply a matter of assembling
  2765. async10.asm into async10.obj with TASM (no command line params but the file
  2766. name) and changing the ASYNC10.PAS file to link ASYNC10.OBJ instead of
  2767. C:\ASM\ASYNC10.OBJ (in other words, get rid of the path...)
  2768. If people need the .OBJ file, I suppose it would be legal to post if for
  2769. download, wouldn't it?  If I don't hear any objections in the next week or so
  2770. then I will post ASYNC10.OBJ in the Pascal area of the MeisterBoard, at
  2771. (512)/476-4770...
  2772. jbm
  2773.  
  2774.  
  2775. --- Opus-CBCS 1.10.vi
  2776.  * Origin: Crystal Palace  The Ghost in the Machine  (1:382/1.0)
  2777.  
  2778. *** This is a reply to #65.
  2779.  
  2780.  
  2781. From:    Rolan Yang 
  2782. To:      All                                      Msg #109, 29-Jan-89 12:38am
  2783. Subject: VIRUS
  2784.  
  2785. I previously read a message about someone trying to write a virus
  2786. in pascal. Well, my computer class is the most boring in the world
  2787. and in between assignments I've been working on one. I have a working
  2788. copy (I think I'll upload it sometime). It's pretty cheap and useless.
  2789. At first it pretends to erase everything from your disk except 
  2790. command.com and 2 other files which if you TYPE will give you some
  2791. small message. Then after 10 times of unsuccessfully doing anything,
  2792. all your files come back on to the disk BUT you cant run anything.
  2793. then after another 10 times of not doing anything, All traces of the
  2794. virus dissapear and it ends with a small warning about being aware
  2795. of viruses and their destructivness.
  2796.    
  2797. Does anyone know how I can get a directory into a TXT file from a 
  2798. pascal program??
  2799.  In dos it's   DIR >CAT.TXT
  2800.   CAT.TXT begin the file which would contain the directory.
  2801.                                                -The Alligator
  2802. --- QuickBBS v2.03
  2803.  * Origin: MicroMan BBS - Piscataway, NJ (201)463-1540 (1:107/334)
  2804.  
  2805. *** There is a reply. See #175.
  2806.  
  2807.  
  2808. From:    Mike Hinds 
  2809. To:      Fabiano Fabris                           Msg #110, 28-Jan-89 01:02pm
  2810. Subject: Quotes
  2811.  
  2812.  FF> I know this has nothing to do with this echo, but the curiosity is 
  2813.  FF> killing
  2814.  FF> me. How do you do this:
  2815.  
  2816.  FF> ->In a message of <12 Jan 89 20:45:42>, Mark Hopkins (1:343/8.13) 
  2817.  FF> writes:
  2818.  
  2819.  FF> when you quote a message - by hand, or is it a feature of the editor?
  2820.  
  2821. This is an option in MSGED v. 1.96, which wasn't written in Pascal, BTW.
  2822.  
  2823.  
  2824. --- msged 1.96L MSC
  2825.  * Origin: /\/\ Turbo NorthWest \-\ Everett, Washington  (1:343/27.2)
  2826.  
  2827.  
  2828. From:    Reinhardt Mueller 
  2829. To:      Dave Hess                                Msg #111, 26-Jan-89 06:03am
  2830. Subject: Re: Help
  2831.  
  2832. -> I am trying to fiddle around with windows in Turbo Pascal.
  2833.  
  2834. -> I NEED HELP PLEASE! PLEASE PLEASE!  I declared the top window
  2835. -> something like this... WINDOW(1,1,81,1) and the bottom I think
  2836. -> Window(24,1,104,1)???  What am I doing wrong?
  2837.  
  2838. The values you're passing to the WINDOW procedure are out of range.
  2839.  
  2840. <<spoken calmly>>
  2841. Dave, for starters, have you ever thought about curling up with a
  2842. good book, like your Turbo Pascal manual(s)?  I'll point you
  2843. in the right direction for the answer to your question about the
  2844. WINDOW procedure. I'm assuming that you have the manual(s) for
  2845. your particular version of Turbo Pascal on hand.
  2846.  
  2847. Look on page 168 of the TP v3.0 reference manual.
  2848.  
  2849. Look on pages 302-308, 498-499 of the TP v4.0 reference manual.
  2850.  
  2851. If you have v5.0, you'll have two manuals.
  2852. Look on page 218 of the TP v5.0 user's guide.
  2853. Look on pages 135-142, 414-415 of the TP v5.0 reference guide.
  2854.  
  2855. Go ahead and read it/them -- cover to cover.  You have only your
  2856. ignorance to lose!  If you don't understand something, READ THE
  2857. MANUAL FIRST!  If you don't understand the manual, THEN post a
  2858. message.
  2859.  
  2860. Remember, if you check the manual first, you'll most likely get
  2861. the help you so desperately seek instantly, and you won't have to
  2862. wait up to a week for a reply!  Now doesn't that advice make you
  2863. feel happy?
  2864.  
  2865. --- Via OpXpress V1.02  Always a notch off....just like the Madman!
  2866.  * Origin: LSO II * Everett WA * 206/334-7039 * HST (1:344/100.0)
  2867.  
  2868. *** Part of a conversation.
  2869.  
  2870.  
  2871. From:    Colten D. Edwards 
  2872. To:      Scott Wilson                             Msg #112, 28-Jan-89 12:38pm
  2873. Subject: Opus user list
  2874.  
  2875. Yes version 4 is avaliable as OPINT102.ARC I believe. You'll also want
  2876. OP102-1.ARC to go with it. Might also want to request FILES as well... 
  2877.  
  2878. --- ConfMail V4.00
  2879.  * Origin: Treasure Isle Private Mail System (1:140/51)
  2880.  
  2881. *** This is a reply to #64.
  2882.  
  2883.  
  2884. From:    Colten D. Edwards 
  2885. To:      Gilbert Edwards                          Msg #113, 29-Jan-89 03:17am
  2886. Subject: Help With the (getdir or chgdir) command
  2887.  
  2888. Did you set the length of the string at all. Since it's an asciiz string to
  2889. start with there wouldn't be a length byte. 
  2890.  
  2891. --- ConfMail V4.00
  2892.  * Origin: Treasure Isle Private Mail System (1:140/51)
  2893.  
  2894. *** There is a reply. See #120.
  2895.  
  2896.  
  2897. From:    Parker Jordan 
  2898. To:      All                                      Msg #114, 29-Jan-89 07:45pm
  2899. Subject: READ_KBD
  2900.  
  2901. HELP....!!! I'M TRYING TO USE TECHNOJOCK TOOLSKIT READ_KBD TO RETURN CONTROL
  2902. CHARACTERS OF PFKEYS IN A REPEAT LOOP, THEN ON CASE OF KEY GO TO A SEPARTE
  2903. PROCEDURE TO OPEN A FILE AND READ IN IN...THIS WORKS ON THE FIRST READ, BUT
  2904. WHEN TRYING TO CALL PROCEDURE SECOND TIME IT IGNORES THE READ INSTRUCTION...
  2905. I.E.    REPEAT
  2906.                               READ_KBD(INCHR,INCTL);
  2907.                                CASE INCTL OF
  2908.                                 F1_KEY : BEGIN
  2909.                                           READ_PROC;
  2910.                                          END;
  2911.                                END; {CASE}
  2912.                            UNTIL INCHR = ESC
  2913.             PROCEDURE READ_PROC;
  2914.              VAR FILE_ID : STRING[15];
  2915.                  FILE    : FILE OF WHATEVER;
  2916.              BEGIN
  2917.               READ(FILE_ID);
  2918.   THIS READ IS THE PLACE IT SKIPS....
  2919.               ASSIGN(FILE,FILE_ID)   AND SO FORTH........
  2920. FOR ANY TYPES OTHER THAN INTEGER READS, IT WILL ONLY WORK ONE TIME. IT
  2921. SEEMS TO BE A PROBLEM WITH READ_KBD FOLLOWED BY ANY CALL TO A PROCEDURE THAT
  2922. DOES A STANDARD READ...   I WORKED AROUND IT BY USING THE TECHNO
  2923. READ_LINE BUT AM CONFUSED WHY THE STANDARD READ DID NOT WORK... IF
  2924. ANYONE WOULD LIKE TO SEE THE SOURCE OTHER THAN WHAT WAS DESCRIBED ABOVE I
  2925. WOULD BE HAPPY TO PUT IT OUT FOR YOU.  ANY IDEAS ????
  2926. THANKS,
  2927. PARKER JORDAN...
  2928.  
  2929. --- ConfMail V4.00
  2930.  * Origin: KIC-BBS, from the heart of Cincinnati, Oh. (HST) (1:108/89)
  2931.  
  2932. *** There is a reply. See #152.
  2933.  
  2934.  
  2935. From:    Parker Jordan 
  2936. To:      Ron Dexter                               Msg #115, 29-Jan-89 08:02pm
  2937. Subject: Re: Memory Reading/Writing
  2938.  
  2939. RON, I DONT KNOW ABOUT 3.0 BUT FOR 4.0 YOU CAN MAP YOUR VARIABLES TO
  2940. SCREEN MEMORY VIA ABSOLUTE $B800 FOR COLOR AND $B000 FOR MONO...
  2941. ALSO THERE IS AN ASSIGNCRT FUNTION THAT WILL MAP TEXT TO THE SCREEN.
  2942. THERE ARE SOME GREAT TOOLS IN TURBO TECHNOJOCK TOOLKIT FOR WINDOW
  2943. AND SCREEN I/O... THEY HAVE SOME ASSEMBLER ROUTINES TO DO THIS.
  2944. A GREAT BOOK FOR 4.0 IS BORLAND'S USING TURBO PASCAL 4.0...THE
  2945. ASSEMBLER ROUTINES IN THE TOOLKIT SHOULD WORK FOR 3.0 IF YOU LINK THEM 
  2946. IN WITH YOUR PROGRAM... IF YOU WOULD LIKE ANYMORE ABOUT 4.0 JUST YELL
  2947. PARKER JORDAN
  2948.  
  2949. --- ConfMail V4.00
  2950.  * Origin: KIC-BBS, from the heart of Cincinnati, Oh. (HST) (1:108/89)
  2951.  
  2952.  
  2953. From:    Parker Jordan 
  2954. To:      Jon Rupert                               Msg #116, 29-Jan-89 08:17pm
  2955. Subject: Re: ANSI UNIT
  2956.  
  2957. JON,
  2958.   DID YOU EVER FIND SUCH A UNIT ??? I USE PC EMULATION TO TALK WITH
  2959. DEC PDP AND VAX AND WOULD LIKE TO TAKE ADVANTAGE OF THE ANSI TERMINAL
  2960. CHARACTERS AND POSSIBLY GRAPHICS MODES TYPE OF FILES...
  2961. THANKS,
  2962. PARKER JORDAN
  2963.  
  2964. --- ConfMail V4.00
  2965.  * Origin: KIC-BBS, from the heart of Cincinnati, Oh. (HST) (1:108/89)
  2966.  
  2967. *** There is a reply. See #145.
  2968.  
  2969.  
  2970. From:    Andy Lester 
  2971. To:      Torben Paving                            Msg #117, 29-Jan-89 02:45pm
  2972. Subject: Turbo DataBase Toolbox
  2973.  
  2974.  TP> Just a word of warning. I did that myself, but experienced a hangup in 
  2975.  TP> one of the database modules. I used several hours debugging with 
  2976.  TP> Periscope before I found the error. It was a for loop, which was 
  2977.  TP> terminated by altering the termination value INSIDE the for loop. This 
  2978.  TP> worked fine in TP3, but not in TP4 and TP5 (ref. TP4 Manual pg. 261 and 
  2979.  TP> TP5 Manual pg. 79). So watch out.
  2980.  
  2981. You mean a Borland-written toolbox had that kind of code in it?  Yeesh, 
  2982. doesn't make me trust them very much.  That's amazingly bad practice on their 
  2983. part, and it makes me wonder if they do that elsewhere.
  2984.  
  2985. Andy
  2986.  
  2987.  
  2988. --- msged 1.96S ZTC
  2989.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true;
  2990. (1:115/790.2)
  2991.  
  2992. *** There is a reply. See #221.
  2993.  
  2994.  
  2995. From:    Andy Lester 
  2996. To:      Holger Schurig                           Msg #118, 29-Jan-89 02:48pm
  2997. Subject: USES style
  2998.  
  2999.  CF> Poor mans equivalent of "FROM module IMPORT ..."
  3000.  
  3001.  HS> I have never understand the need this FROM module IMPORT <long list of
  3002.  HS> everything i want to use> in Modula. One reason might be too simplify
  3003.  HS> the compiler. But a good compiler should work for me, not i for him !
  3004.  
  3005. I think it's mostly to allow the programmer to explicitly say which code he 
  3006. wants imported from the units that he's using.  If, for example, you're using 
  3007. unit CRT, but you're only using KeyPressed, you don't want the rest of the 
  3008. code that's in CRT sucked in as well, do you?
  3009.  
  3010. The thing is that most of the new compilers don't have this problem, and that 
  3011. they can suck in only the code needed, so that feature of Modula-2 has fallen 
  3012. by the wayside.
  3013.  
  3014. Andy
  3015.  
  3016.  
  3017. --- msged 1.96S ZTC
  3018.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true;
  3019. (1:115/790.2)
  3020.  
  3021. *** Part of a conversation.
  3022.  
  3023.  
  3024. From:    Andy Lester 
  3025. To:      Holger Schurig                           Msg #119, 29-Jan-89 06:05pm
  3026. Subject: Re: GOTOs
  3027.  
  3028.  HS> Why not try this:
  3029.  HS> 
  3030.  HS> {$B+} { boolean evaluation must be set to short-circuit for this ! }
  3031.  HS> REPEAT
  3032.  HS>   IF NOT (part1 AND part2 AND part3) THEN <other code>
  3033.  HS> UNTIL done;
  3034.  
  3035. Hmm, slick trick, Holger, but can you be assured that Turbo evaluates boolean 
  3036. expressions left to right?  I had a problem with that when converting Apple 
  3037. Pascal to Turbo.  I had the following in Apple Pascal:
  3038.  
  3039. function at(x,y:integer):char;
  3040. {stuff to place the cursor, and return a null}
  3041. begin
  3042. GotoXY(x,y);  {This isn't exactly how it is, but this is the Turbo equiv}
  3043. at:=#0;
  3044. end;
  3045.  
  3046.  
  3047. write(at(00,00),'Program name & stuff',
  3048.       at(00,02),'This is this and blah blah',
  3049.       at(00,05),'This is more stuff');
  3050.  
  3051. Stuff like that.  We use that structure all the time.  Apple goes from left to
  3052. right (and top to bottom), so it would call At(00,00), which would position 
  3053. the cursor, and then print the string, and then call At(00,02), and so on.  
  3054. This would all us to cram a screen into one easy to read write statement.
  3055.  
  3056. It doesn't work in Turbo Pascal.  Apparently, Turbo calls the At() functions 
  3057. first, and then passes everything to the write() procedure.  Therefore, all 
  3058. the cursor positions are executed at once, so only the last one "has any 
  3059. effect", if you will.
  3060.  
  3061. We had to rewrite all of those as:
  3062. write(at(00,00),'Program name & stuff');
  3063. write(at(00,02),'This is more stuff');
  3064. etc.
  3065.  
  3066. to insure that we had the correct cursor positioning.
  3067.  
  3068. So I digress.  Back to the original point.  If you have
  3069.   if not(part1 and part2 and part3) then...
  3070. can you be assured that part1 is called, and then part2 and then part3?  Most 
  3071. compilers like to generate code and variables in a LIFO (last in, first out) 
  3072. stack.  Maybe part3 will be called first...
  3073.  
  3074. Andy
  3075.  
  3076.  
  3077. --- msged 1.96S ZTC
  3078.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true;
  3079. (1:115/790.2)
  3080.  
  3081. *** Part of a conversation.
  3082.  
  3083.  
  3084. From:    Andy Lester 
  3085. To:      Gilbert Edwards                          Msg #120, 29-Jan-89 08:03pm
  3086. Subject: Help With the (getdir or chgdir) command
  3087.  
  3088.  GE>  I have created a program that read the system#.bbs on Opus board.
  3089.  GE> What I need is a way to change directories when I read the system     
  3090.  GE> files. I have a string call path-to_files which I have taken all the 
  3091.  GE> null characters off.
  3092.  
  3093. So what's wrong?  What's the problem?
  3094.  
  3095. Andy
  3096.  
  3097.  
  3098. --- msged 1.96S ZTC
  3099.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true;
  3100. (1:115/790.2)
  3101.  
  3102. *** This is a reply to #113.
  3103.  
  3104.  
  3105. From:    Andy Lester 
  3106. To:      Fabiano Fabris                           Msg #121, 29-Jan-89 06:14pm
  3107. Subject: Re: Files
  3108.  
  3109.  FF> How do you do this:
  3110.  FF> In a message of <12 Jan 89 20:45:42>, Mark Hopkins (1:343/8.13) writes:
  3111.  FF> 
  3112.  FF> when you quote a message - by hand, or is it a feature of the editor?
  3113.  
  3114. I run a point system.  I'm point #2 off of 115/790.  I poll my boss node and 
  3115. get all my messages in ARChived format and then read them off-line using this 
  3116. snazzy editor called MsgEd that allows message quoting (like the FF>s at the 
  3117. left of your words).
  3118.  
  3119. If you read a lot of echos and spend a lot of time online and have a hard 
  3120. drive, setting up as a point can save you lots of time.
  3121.  
  3122. Andy
  3123.  
  3124.  
  3125. --- msged 1.96S ZTC
  3126.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true;
  3127. (1:115/790.2)
  3128.  
  3129. *** There is a reply. See #201.
  3130.  
  3131.  
  3132. From:    Andy Lester 
  3133. To:      Heikki Levanto                           Msg #122, 29-Jan-89 06:23pm
  3134. Subject: Stack
  3135.  
  3136.  HL> How does Turbo's stack structure work ?
  3137.  
  3138. What you're asking really doesn't have anything to do with the internal stack 
  3139. structure.  It has to do with the variable's scope (what procs can see which  
  3140. it) and lifetime (when it is allocated on the stack, and when it  disappears).
  3141. It's the same for all Pascals.
  3142.  
  3143.  HL> That may be too complicated, let me draw the whole thing out:
  3144.  
  3145. It was.  I'm glad you did. :-)
  3146.  
  3147.  HL> Procedure Outer ;
  3148.  HL>   Var OuterVar : integer ;
  3149. This is "visible" to every procedure in Outer, regardless of how many  times
  3150. ProcA or ProcB is called.  It's unaffected by any of the  shenanigans with A &
  3151. B.       
  3152.  
  3153.  HL>   Procedure ProcA ; { of Outer }
  3154.  HL>     begin
  3155.  HL>       writeln ( OuterVar );
  3156.  HL>       end ; { ProcA }
  3157.  HL>  
  3158.  HL>   Procedure ProcB ; { of Outer }
  3159.  HL>     var Bvar ;
  3160. This is visible to ProcB and Inner, but not ProcA.  If ProcB is called 
  3161. multiple times, then a "new" Bvar is allocated each time.
  3162.  HL>     Procedure Inner ; { of B of Outer }
  3163.  HL>       begin
  3164.  HL>         ProcA ;
  3165.  HL>         end ; { Inner }
  3166.  HL>     begin
  3167.  HL>       end ; { ProcB }
  3168.  HL>  
  3169.  HL>   begin { Outer itself }
  3170.  HL>     OuterVar := 1 ;
  3171.  HL>     ProcA ;
  3172.  HL>     Outervar := 2 ;
  3173.  HL>     ProcA ;
  3174.  HL>     end ; { Outer }
  3175.  
  3176. I hope this helps.  Locally declared variables can be a real headache, 
  3177. especially if you ARE talking about recursive procs.
  3178.  
  3179. --- msged 1.96S ZTC
  3180.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true; 
  3181. (1:115/790.2)
  3182.  
  3183.  
  3184. From:    Andy Lester 
  3185. To:      Dave Goggin                              Msg #123, 29-Jan-89 06:35pm
  3186. Subject: FUNCTION RETURN STRING?
  3187.  
  3188.  DG> Unless Turbo Pascal is different than regular pascal (in this case) I 
  3189.  
  3190. It is.
  3191.  
  3192.  DG> don't see how you can return a string, from a function.  I though you 
  3193.  DG> couldn't return structured variables from a function.
  3194.  
  3195. Turbo allows returning strings but not records.  The following runs just fine:
  3196.  
  3197. program foo;
  3198.  
  3199. function upstring(strg:string):string;
  3200. var
  3201.   i : integer;
  3202. begin
  3203. for i:=1 to length(strg) do
  3204.   strg[i]:=upcase(strg[i]);
  3205. upstring:=strg;
  3206. end;
  3207.  
  3208. begin
  3209. writeln(upstring('Now is the time...'));
  3210. end. 
  3211. However, the test program that I wrote that tried to return a record didn't.  
  3212.  
  3213. Andy
  3214.  
  3215.  
  3216. --- msged 1.96S ZTC
  3217.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true;
  3218. (1:115/790.2)
  3219.  
  3220. *** This is a reply to #57.
  3221.  
  3222.  
  3223. From:    Andy Lester 
  3224. To:      Reinhardt Mueller                        Msg #124, 29-Jan-89 06:38pm
  3225. Subject: Re: Apple Pascal 1.3 CLOSE problems
  3226.  
  3227.  RM>  ->reset(fl,filename);
  3228.  RM>  ->for i:=1 to 10 do
  3229.  RM>  ->  begin
  3230.  RM>  ->  pack_record(fl^);
  3231.  RM>  ->  put(fl);
  3232.  RM>  ->  end;
  3233.  RM>  ->close(fl);
  3234.  
  3235.  RM> I'm assuming that Apple Pascal is still running under the p-System.
  3236.  
  3237. It is.
  3238.  
  3239.  RM> Andy, I don't see any {$I-} directives in that code fragment and
  3240.  RM> you're not getting dumped into the p-system command mode, so that
  3241.  RM> tells me that your I/O checking is turned off. Your program is
  3242.  RM> not reporting the errors to you. You have to test IORESULT to see
  3243.  RM> if the last IO operation was successful.
  3244.  
  3245. Yes, {$I-} is in force.  We check IORESULT ourselves rather than having Apple 
  3246. Pascal crash.  Admittedly, I neglected to show the procedure call to our IORES
  3247. routine which checks IORESULT and sets a string and flag.  The problem is that
  3248. Pascal isn't returning the error, not that we're not checking for it.
  3249.  
  3250.  RM> Test the variable (or
  3251.  RM> print it out), not IORESULT! Any access of the IORESULT
  3252.  RM> immediately sets it to zero. Use it only once per IO operation.
  3253.  
  3254. Yeah, that IS a fun bug quirk of it, isn't it?
  3255.  
  3256. Well, after a little more research after the last week or two, I've concluded 
  3257. the following:
  3258.  
  3259. Calling close does two things.  First, it writes the file's 1-block buffer to 
  3260. disk.  Then it updates the directory.  However, if I have the drive door open 
  3261. for the buffer write, the drive chatters, and probably fails internally, and 
  3262. then it goes on it's merry way to the directory update.  Now, if I close the 
  3263. drive door at this point, it can update the directory succesfully and it 
  3264. returns an IORESULT of 0.  Neat trick, eh?
  3265.  
  3266. Admittedly, I don't have a debugger to step through it (I don't think one 
  3267. exists for Apple Pascal, and if it does, somebody please tell me about it), 
  3268. but it seems the only possible way.
  3269.  
  3270. The other thing that we discovered is that it IS necessary to check IORESULT 
  3271. after a SEEK operation.  We used to think that a SEEK would only set Pascal's 
  3272. internal memory file pointer.  Wrongo.  If the SEEK points to a record that 
  3273. lies in a different block on the disk than what's in the buffer, it writes out
  3274. the current block.  If that fails, it can return an IORESULT <>0.  
  3275.  
  3276. This last week has been raaaather enlightening... :-)
  3277.  
  3278. Andy 
  3279.  
  3280. --- msged 1.96S ZTC
  3281.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true;
  3282. (1:115/790.2)
  3283.  
  3284. *** There is a reply. See #246.
  3285.  
  3286.  
  3287. From:    Andy Lester 
  3288. To:      Charles Falconer                         Msg #125, 29-Jan-89 08:07pm
  3289. Subject: Various Pascal Implementations
  3290.  
  3291.  CF> Soapbox on
  3292.  
  3293. What?  Soapboxing here?  Oh no!  :-)
  3294.  
  3295.  CF> The program header line is not a frill, but specifies what files are 
  3296.  CF> external to the program.  Files declared that are NOT listed in the 
  3297.  CF> header should be purely internal, thus temporary, and go away at 
  3298.  CF> program exit (unless the temporaryness is specifically overridded, e.g. 
  3299.  CF> with an assign statement, or equivalent).
  3300.  
  3301. Yes, they are a frill.  They're ignored by Turbo.  I'm just not sure what you 
  3302. mean when you say "internal" and "external" when referring to files.  What if 
  3303. you have a recursive procedure that opens f1?  For instance:
  3304.  
  3305. procedure list_file(f1 : text);
  3306. begin
  3307. { read read read }
  3308. if IncludeAFile then
  3309.   begin
  3310.   assign...
  3311.   list_file(f1);
  3312.   end;
  3313. end;
  3314.  
  3315. just as an example, if you're listing $I files.  I wrote a program called 
  3316. PList that pretty-printed Turbo output (added line numbers and ran a variable 
  3317. cross-ref) and it was necessary to handle $I files like that.
  3318.  
  3319. Andy
  3320.  
  3321.  
  3322. --- msged 1.96S ZTC
  3323.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true;
  3324. (1:115/790.2)
  3325.  
  3326. *** There is a reply. See #227.
  3327.  
  3328.  
  3329. From:    Andy Lester 
  3330. To:      Scott Hudnall                            Msg #126, 29-Jan-89 08:12pm
  3331. Subject: Decompiling
  3332.  
  3333.  SH> How do you get a program that has been compiled to disk into an .EXE 
  3334.  SH> program....decompiled back into a .PAS type format???
  3335.  
  3336. You can't.  It doesn't work that way.
  3337.  
  3338. Andy
  3339.  
  3340.  
  3341. --- msged 1.96S ZTC
  3342.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true;
  3343. (1:115/790.2)
  3344.  
  3345. *** There is a reply. See #222.
  3346.  
  3347.  
  3348. From:    Andy Lester 
  3349. To:      Morten Nielsen                           Msg #127, 29-Jan-89 08:12pm
  3350. Subject: Re: Pascal Programming BBS
  3351.  
  3352.  MN>  > users (mostly cute  young office girls :-).  It's a buzz
  3353.  
  3354.  MN>  > Nope.  I set my own.
  3355.  
  3356.  MN>  > Deadlines?  What are those?  I think I've had maybe 3 deadlines
  3357.  MN>  > in 3 years.
  3358.  MN>  
  3359.  MN> Can I get a job??  8-)
  3360.  
  3361. Well, I don't mind, but 1) You'd be low man on the totem pole and would get 
  3362. to do fun things like handling tech support phone calls, and 2) I think it'd 
  3363. be a hell of a commute for you.
  3364.  
  3365. Andy
  3366.  
  3367.  
  3368. --- msged 1.96S ZTC
  3369.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true;
  3370. (1:115/790.2)
  3371.  
  3372.  
  3373. From:    Andy Lester 
  3374. To:      All                                      Msg #128, 29-Jan-89 08:15pm
  3375. Subject: :-
  3376.  
  3377.  JW> Well its a smiling face, 
  3378.  
  3379.  
  3380. blah blah blah... please, can we can the explanations of smileys?
  3381.  
  3382. Andy
  3383.  
  3384.  
  3385. --- msged 1.96S ZTC
  3386.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true;
  3387. (1:115/790.2)
  3388.  
  3389. *** This is a reply to #32.
  3390.  
  3391.  
  3392. From:    Andy Lester 
  3393. To:      Paul Lindquist                           Msg #129, 29-Jan-89 08:18pm
  3394. Subject: WILDCARDS
  3395.  
  3396.  PL> IE I want to process all .TXT files, I would type filter *.txt.  How 
  3397.  PL> could i get this to list out file1.txt, file2.txt, file3.txt, etc.
  3398.  
  3399. Roughly, what you want to do follows.  I haven't looked up the syntax in the 
  3400. manual, but the algorithm should be:
  3401.  
  3402. var
  3403.   filespec : string;
  3404.   srec     : SearchRec {from DOS}
  3405.  
  3406. procedure ListFile(file : string);
  3407. { a procedure to list the file, which is something else... :-)  }
  3408. ...
  3409.  
  3410. begin
  3411. filespec:='*.txt';
  3412. findfirst(filespec,(AnyFile-Directory-Hidden),srec);
  3413. while DosError=0 do  {if it found a file matching }
  3414.   begin
  3415.   ListFile(srec.filename);
  3416.   FindNext(srec);
  3417.   end;
  3418. end.
  3419.  
  3420. This way, you search through the directory for files matching the mask and 
  3421. then list them out.  Check the manual on FindFirst and FindNext.  They're 
  3422. very clear.  Even >I< figured it out!
  3423.  
  3424. Andy
  3425.  
  3426.  
  3427. --- msged 1.96S ZTC
  3428.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true;
  3429. (1:115/790.2)
  3430.  
  3431. *** This is a reply to #17.
  3432.  
  3433.  
  3434. From:    Andy Lester 
  3435. To:      Reinhardt Mueller                        Msg #130, 29-Jan-89 08:27pm
  3436. Subject: Re: A Little Problem
  3437.  
  3438.  RM> First of all, your screen coordinates in the turbo start at 1. In
  3439.  RM> p-System they start at 0. You have one more screen line to play
  3440.  RM> with on the IBM.
  3441.  
  3442. We know, and it's an annoyance, but not a real problem.
  3443.  
  3444.  RM> You have the names of the screen-handling
  3445.  RM> procedures to deal with too. If your program uses the Apple's
  3446.  RM> arrow keys you'll have to account for that too. Your users won't
  3447.  RM> appreciate having to use Ctrl key combinations! <<grin>>
  3448.  
  3449. All of our input is done thru a handful of standard procedures:  GetChar,  
  3450. GetNum, WaitForCR, YesNo.  That's it.  Since we have those converted, 
  3451. keyboard  I/O isn't a problem.
  3452.  
  3453.  RM> Are you using the SCAN function in the Apple version? Turbo
  3454.  RM> Pascal doesn't (and has never had it, but could use) the SCAN
  3455.  RM> function. Be prepared to write a/some little assembly language
  3456.  RM> routine(s) to emulate it.  That's what I'm thinking of doing now.
  3457.  
  3458. I remember that we had a problem with it, but that we got over it.  Most of 
  3459. the conversion stuff was done about 6 months ago.  They took the very Q&D 
  3460. approach to it, namely changing everything in the programs we ported over, 
  3461. but not writing a compatibility unit.  If we really do start doing parallel 
  3462. development, we'll need it.
  3463.  
  3464.  RM> Are you directly comparing two records of the same type with =?
  3465.  RM> That's illegal in Turbo. You'll have to compare each field
  3466.  RM> separately in Turbo or use a trick mentioned somewhere in the
  3467.  RM> Turbo manual. If those records you want to compare contain
  3468.  RM> variant fields, you won't be able to reliably use the trick.
  3469.  
  3470. Hell, I'm having that problem in SCUD!  :-)
  3471.  
  3472.  RM> TYPE
  3473.  RM>   S = PACKED RECORD
  3474.  RM>         first_field : 0..1;
  3475.  RM>         second_field : 0..7;
  3476.  RM>         third_field  : 0..3;
  3477.  RM>         fourth_field : 0..255;
  3478.  RM>       END;
  3479.  RM> 
  3480.  RM> If you have stuff like the above, it will take up 4 bytes in
  3481.  RM> Turbo but only 2 bytes in UCSD Pascal. Remember that if/when
  3482.  RM> using free unions to test bits from wierd stuff coming in from
  3483.  RM> and going to the hardware.
  3484.  
  3485. Yeah, we know about that, too.  Fun stuff, eh?
  3486.  
  3487. I've mentioned this a few months ago, but these are equivalent:
  3488. UCSD:
  3489. var
  3490.   flags : packed array[0..7] of boolean;
  3491.  
  3492. Turbo
  3493. var
  3494.   flags : set of [0..7];
  3495.  
  3496. In memory, I don't care what the internal representation is, but on disk it 
  3497. can cause problems.
  3498.  
  3499.  
  3500. Always nice to see someone who understands where I'm coming from, though.  
  3501. I'd really like to write a UCSD-Turbo compatibility unit, but management 
  3502. isn't really keen on the PCs yet, so it's on the back burner....
  3503.  
  3504. Andy
  3505.  
  3506.  
  3507. --- msged 1.96S ZTC
  3508.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true;
  3509. (1:115/790.2)
  3510.  
  3511. *** Part of a conversation.
  3512.  
  3513.  
  3514. From:    Andy Lester 
  3515. To:      Kevin Lowey                              Msg #131, 29-Jan-89 08:32pm
  3516. Subject: Re: RE:tug O'wards Iv
  3517.  
  3518.  KL> However, Borland has stopped doing this, so now no one knows about TUG. 
  3519.  KL>  For all you TUG members out there, please spread the word.  For all 
  3520.  KL> the people that are NOT TUG members, I'll try and find their address 
  3521.  KL> and subscription form at home and will post another message with it. 
  3522.  
  3523. I was a TUGger when they first started out.  I have about 20 issues of TUG 
  3524. lines somewhere, starting at issue #2.  I loved it dearly; indeed, I had a 
  3525. letter published back then.
  3526.  
  3527. However, now it, like Computer Language, has become mostly fluff and 
  3528. beginners articles and lots of reviews of PC development tools.
  3529.  
  3530. That's why I miss Turbo Technix so much.  Yes, it had the beginners stuff, 
  3531. but the hardcore stuff was fantastic.
  3532.  
  3533. Andy
  3534.  
  3535.  
  3536. --- msged 1.96S ZTC
  3537.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true;
  3538. (1:115/790.2)
  3539.  
  3540. *** This is a reply to #26.
  3541.  
  3542.  
  3543. From:    Paul Lindquist 
  3544. To:      Joseph Dejesus                           Msg #132, 29-Jan-89 08:28pm
  3545. Subject: Re: BBS
  3546.  
  3547. TP Board version 5.0 is the latest BBS written in Turbo Pascal.  Source Code
  3548. is available for the board.
  3549.  
  3550. Paul Lindquist
  3551. --- TBBS v2.0
  3552.  * Origin: TBBS in '89, We aren't QUICKly Lost in Time 918-744-0249 (170/210)
  3553.  
  3554. *** Part of a conversation.
  3555.  
  3556.  
  3557. From:    Matt Franckiewicz 
  3558. To:      All                                      Msg #133, 26-Jan-89 02:54pm
  3559. Subject: Xasp & Yasp
  3560.  
  3561. When I call Xasp and Yasp, I get 8333 and 10000 {respectively. I don't
  3562. understand why I get these numbers rather than 6250 and 10000, i.e. the same
  3563. ratio as 200  is to 320  (in cga mode).
  3564.  
  3565.  
  3566. ---
  3567.  * Origin: THE SMORGAS-BOARD  Monroeville, PA  1-412-733-3010 (Opus 1:129/32)
  3568.  
  3569.  
  3570. From:    Matt Franckiewicz 
  3571. To:      All                                      Msg #134, 26-Jan-89 02:57pm
  3572. Subject: Getpalettesize
  3573.  
  3574. If I write {the following code:
  3575.  
  3576. Driver := 1;   {cga} Mo     := 2;   {cga 320 x 200}
  3577. Initgraph (driver, mo, '');
  3578. Write (getpalettesize);
  3579.  
  3580. I get output of 1.  Why don{'t I get 3 since there are 3, or 4, depending on
  3581. whether th{e background counts?
  3582.  
  3583.  
  3584. ---
  3585.  * Origin: THE SMORGAS-BOARD  Monroeville, PA  1-412-733-3010 (Opus 1:129/32)
  3586.  
  3587.  
  3588. From:    Matt Franckiewicz 
  3589. To:      Roland Brown                             Msg #135, 28-Jan-89 12:34pm
  3590. Subject: Re: Keep command, Cntrl-C
  3591.  
  3592.  >  > When a TP program begins, it grabs a lot of interrupts.
  3593.  >  >  The old vectors are store{d in varaibles with names
  3594.  > like
  3595.  {  > SaveInt24 {hex}.  Could you use SetIntVec{tor with whatever
  3596.  >  > number the ctrl c inte{rrupt is, to reset the vector
  3597.  >
  3598.  > If memory serves those variables are global and you should
  3599.  > be able to reset the interrupt to the original setting
  3600.  > by using those variables. I think there is even an example
  3601.  > of how to do that in the manual(s) but I don't remember
  3602.  > where.
  3603.  
  3604. If you are sa{ying that by doing something like
  3605. SaveInt24 := @YourNewInterrupt;
  3606. you can change what the interrupt does, I think you are mistaken.  As I
  3607. understand it, all that SaveInt24 (and similar variables) does, is to save the
  3608. original DOS address for the interrupt, since Turbo uses its own interrupt
  3609. procedure.  Then on exiting, the Turbo program resets the interrpts to the
  3610. original DOS ones (in SaveInt24, etc) so that Lotus, Wordstar or whatever get
  3611. the interrupts they expect.  So changing SaveInt24 would not affect how the
  3612. interrupt worked while your Turbo program was running, but would change how
  3613. the ingterrupt worked after your program finished.
  3614.  {
  3615. Incidentally, I've been saying DOS, but I should have said {BIOS interrupts.
  3616.  
  3617.  
  3618. ---
  3619.  * Origin: THE SMORGAS-BOARD  Monroeville, PA  1-412-733-3010 (Opus 1:129/32)
  3620.  
  3621. *** There is a reply. See #151.
  3622.  
  3623.  
  3624. From:    Matt Franckiewicz 
  3625. To:      Tom Bocchino                             Msg #136, 28-Jan-89 12:12pm
  3626. Subject: R
  3627.  
  3628. Tom, my program FileKing moves, deletes, copies, renames, changes dates or
  3629. times of files, and changes attributes as well, from a Lotus type menu line,
  3630. operating on a highlighted file in an alphabetized list. It is supposed to be
  3631. published in the Jan/Feb issue of Turbo Tech Report 
  3632. (which should not be confused with the defunct Turbo Technix.)
  3633.  
  3634.  
  3635. ---
  3636.  * Origin: THE SMORGAS-BOARD  Monroeville, PA  1-412-733-3010 (Opus 1:129/32)
  3637.  
  3638. *** There is a reply. See #176.
  3639.  
  3640.  
  3641. From:    Matt Franckiewicz 
  3642. To:      Michelle Wyner                           Msg #137, 29-Jan-89 12:14pm
  3643. Subject: Re: Tp 5.0
  3644.  
  3645.  > I just got TP 5.0.  REAL great program, but the users manual
  3646.  > doesn't help much in learning Pascal.  I've read it from
  3647.  > front to back, and I know the basics, but I need to know
  3648.  > more.  Can anyone suggest a program (not the TP tutor for
  3649.  > $69.95) or a book (under $20.00 preferably) that'll help
  3650.  > me?  Thanks.
  3651.  
  3652. I don't need my Turbo Tutor anymore, and I'm willing to part with it{ for ten
  3653. bucks.  I have a number of Pascal books, and in my opinion, Turbo Tutor is the
  3654. way to learn the most the fastest.  My version is a previous version, not 5.0
  3655. if 5.0 of Tutor even exists, {but for learning, I don't think it makes a great
  3656. deal of difference, since you gotta get th{e real nuances from the manual, and
  3657. from experience anyhow.
  3658.  
  3659. If interested, leave me{ a note here, and I'll give you my address.
  3660.  
  3661.  
  3662. ---
  3663.  * Origin: THE SMORGAS-BOARD  Monroeville, PA  1-412-733-3010 (Opus 1:129/32)
  3664.  
  3665. *** Part of a conversation.
  3666.  
  3667.  
  3668. From:    Hector Santos 
  3669. To:      Ross Wentworth                           Msg #138, 29-Jan-89 09:46am
  3670. Subject: Re: Pascal => C
  3671.  
  3672.  >>    The Turbo Pascal 3.0 -> Quick C transposer was in fact very bad. It
  3673.  
  3674.  RW> Yes, I played around with it for a few hours and ended up 
  3675.  RW> deleting the translator and removing QuickC from my hard disk. 
  3676.  RW> I had hoped that by translating a few of my programs I could 
  3677.  RW> learn about C, unfortunately, the resultant code was so bloated 
  3678.  RW> and difficult to read that there was no way I could learn 
  3679.  RW> anything but bad programming habits from it.
  3680.  
  3681. Using Quick C to learn is very fustrating. I suggest Turbo C instead.
  3682.  
  3683. <hec>
  3684.  
  3685. --- Via Silver Xpress V2.10G  Is it Ready?
  3686.  * Origin: Pitt Xpress : Home of Opus Xpress (412) 864-2294 (1:129/82)
  3687.  
  3688. *** There is a reply. See #195.
  3689.  
  3690.  
  3691. From:    Tim Van Over Of 152/18 
  3692. To:      Moderator                                Msg #139, 30-Jan-89 12:30am
  3693. Subject: Descriptor
  3694.  
  3695.  
  3696. Moderator,
  3697.  
  3698.    An example... thanks for the replys so far...
  3699.  
  3700.  
  3701. --- Tv "God Bless..."   
  3702.  * Origin: PASCAL   - National PASCAL   Conference.  (1:152/18) (8:7000/16)
  3703.  
  3704. *** This is a reply to #34.
  3705.  
  3706.  
  3707. From:    Jon Guthrie 
  3708. To:      Joaquim Homrighausen                     Msg #140, 31-Jan-89 07:52pm
  3709. Subject: Re: TAP and PASCAL
  3710.  
  3711.  JH>  I and Joakim Hernberg started the TransAtlanticProject (TAP) in 
  3712.  JH> the winter of 1987 and would like to continue. But without your 
  3713.  JH> help it won't work. We need contributions regularly. Nothing 
  3714.  JH> big, $5-$10 per month or so will do.
  3715.  
  3716. You DO mean $5-$10 per month PER USER don't you?
  3717.  
  3718. Some of us are on a budget, I will contribute if mine permits.
  3719.  
  3720. --- Via OpXpress V1.06ß "Silver"  SCIGUY -  The Scourge of Delphi!
  3721.  * Origin: FOG-LINE;FOG#51;USR HST;515-964-7937 (1:14/627)
  3722.  
  3723. *** This is a reply to #83.
  3724.  
  3725.  
  3726. From:    Jon Guthrie 
  3727. To:      Charles Falconer                         Msg #141, 31-Jan-89 07:26pm
  3728. Subject: Re: USES style
  3729.  
  3730.  CF> For similar reasons I hate systems that clear the screen without 
  3731.  CF> being  told.  Rather than complex linkages, simply leave the 
  3732.  CF> previous report  such as a directory, on the furshlugginer screen. 
  3733.  CF>  For example, Telix  allows me to call a directory, but then 
  3734.  CF> clears.  Now I go through the transmit sequence, and mis-remember 
  3735.  CF> the exact name.  Around we go again. 
  3736.  
  3737. I refer to this as a program that 'does something for you.'  Meaning
  3738. that the program does something without your knowledge or permission
  3739. when you may want to do something different.  (I often say that I don't
  3740. like Unix because it 'does things for you.'  After all, it KNOWS you
  3741. REALLY want it to do them, even if you don't.)
  3742.  
  3743. I prefer the Modula-2 import/export function because everything is out
  3744. in the open, and you can't accidentally include something that you
  3745. didn't want to and don't have any knowledge of.
  3746.  
  3747. --- Via OpXpress V1.06ß "Silver"  SCIGUY -  The Scourge of Delphi!
  3748.  * Origin: FOG-LINE;FOG#51;USR HST;515-964-7937 (1:14/627)
  3749.  
  3750. *** Part of a conversation.
  3751.  
  3752.  
  3753. From:    Jon Guthrie 
  3754. To:      Jeff Posey                               Msg #142, 31-Jan-89 07:22pm
  3755. Subject: Re: Turbo 4.0
  3756.  
  3757.  JP> Help.. In a program I put in 
  3758.  JP>  
  3759.  JP> Uses Blah, blah, graph;
  3760.  JP>  
  3761.  JP> begin
  3762.  JP>   initgraph;
  3763.  JP>   circle(blah);
  3764.  JP> end.
  3765.  JP>  
  3766.  JP> and had no errors but when i ran it it said
  3767.  JP> "You need to use initgraph first" or something? whats the deal?
  3768.  
  3769. I ran into this problem when I tried to use graphics on a program that
  3770. used up (just about) all of memory.  Apparently, initgraph creates some
  3771. dynamic variables, and if the memory allocations fail it doesn't tell
  3772. anybody.  If your program uses up a bunch of heap space, you may have
  3773. this problem.
  3774.  
  3775. --- Via OpXpress V1.06ß "Silver"  SCIGUY -  The Scourge of Delphi!
  3776.  * Origin: FOG-LINE;FOG#51;USR HST;515-964-7937 (1:14/627)
  3777.  
  3778. *** This is a reply to #35.
  3779.  
  3780.  
  3781. From:    Jon Guthrie 
  3782. To:      Dave Goggin                              Msg #143, 31-Jan-89 07:14pm
  3783. Subject: Re: PASCAL RECURSION
  3784.  
  3785.  DG> test 3: find the first 18 numbers in the fibonacci sequence.  time 
  3786.  DG> is in  seconds.
  3787.  DG>     
  3788.  DG> recursive:   14.89 sec
  3789.  DG> iterative:    0.13 sec
  3790.  
  3791. The reason most often given to not use recursion is the fuction call
  3792. overhead (which is minimal on any decent processor, and I DO include the
  3793. 8088 in that.)  The most common reason that recursive routines are
  3794. slower is the algorithm.
  3795.  
  3796. This fibonacci routine is a good example.  Say you want to calculate
  3797. fib(18).  Well, fib(18) := fib(17) + fib(16); and
  3798. fib(17) := fib(16) + fib(15);  You will notice that need to know fib(16)
  3799. twice (once for 18, once for 17) but you only need to calculate it once.
  3800. The iterative routine only calculates it once, but the recursive routine
  3801. calculates it every time it needs it.  This effect magnifies as you get
  3802. to smaller and smaller values of the argument.  fib(1) and fib(0) are
  3803. calculated whole bunches of times.  (It can number in the tens of
  3804. thousands of times, depending on the original number.  The number of
  3805. executions rises VERY fast with the original argument to fib().)
  3806.  
  3807. --- Via OpXpress V1.06ß "Silver"  SCIGUY -  The Scourge of Delphi!
  3808.  * Origin: FOG-LINE;FOG#51;USR HST;515-964-7937 (1:14/627)
  3809.  
  3810. *** Part of a conversation.
  3811.  
  3812.  
  3813. From:    Eugene White 
  3814. To:      Tony Shelton                             Msg #144, 31-Jan-88 05:39pm
  3815. Subject: .GIF
  3816.  
  3817. I got all new documentation from Borland when I converted to TP 5.0, what did
  3818. you get....
  3819. --- QuickBBS v2.03
  3820.  * Origin: * DCC BBS - One wing of Online Computer Resources * (1:161/502)
  3821.  
  3822. *** Part of a conversation.
  3823.  
  3824.  
  3825. From:    Eugene White 
  3826. To:      Parker Jordan                            Msg #145, 31-Jan-88 05:59pm
  3827. Subject: Re: ANSI UNIT
  3828.  
  3829. Please - use your lower case letters also - it makes it so much easier for us
  3830. older folks with bifocals etc....
  3831. --- QuickBBS v2.03
  3832.  * Origin: * DCC BBS - One wing of Online Computer Resources * (1:161/502)
  3833.  
  3834. *** This is a reply to #116.
  3835.  
  3836.  
  3837. From:    Neil Heller 
  3838. To:      All                                      Msg #146, 31-Jan-89 10:30pm
  3839. Subject: WHERE'S THE PATH?
  3840.  
  3841.      I  have  a  question  -  can  anyone  help  me?  I am writting an
  3842. application in which I need to take the path, as it stood prior to  my
  3843. entrance into the application, place  it in a program variable,  set a
  3844. new  path  and  then  restore  the  original  path  upon exit from the
  3845. application.  As far as I can tell, Turbo Pascal "eats" the path  upon
  3846. booting an application using the DOS UNIT.  This is purely speculation
  3847. on my part.   In any case, I  have experienced that if  an application
  3848. uses the  EXEC command,  the path  (as it  was prior  to starting  the
  3849. application) does not exist while the application holds sway over  the
  3850. system.  Can anyone tell me where  the path went?  It seems as  though
  3851. Turbo Pascal probably  places the path  in a variable  of its own  and
  3852. does its  own restoration  upon exiting.   Can  anyone verify  this or
  3853. refute it with knowledge of what's happening (for sure)?  Keep in mind
  3854. that what I'm after is gaining a little more control over the path  in
  3855. terms of controlling it while IN a Turbo Pascal application.
  3856. --- TBBS v2.0
  3857.  * Origin: Diablo Valley PCUG-BBS, Walnut Creek, CA <415-943-6238> (161/55)
  3858.  
  3859. *** There is a reply. See #231.
  3860.  
  3861.  
  3862. From:    Bob Hodge 
  3863. To:      Hector Santos                            Msg #147, 30-Jan-89 07:49am
  3864. Subject: CASE / GOTO
  3865.  
  3866. HS>Why? because turbo checks each VALUE condition. In Fortran or BASIC,
  3867. HS>the ON GOTO statement is a better method.
  3868.   Hector, I think you may be laboring under a false assumption. (I'm
  3869. surprised no one else has left a message pointing this out.)  The CASE
  3870. statement will ONLY execute the statement corresponding to the first
  3871. "correct" case.  It will then proceed to the statement following the
  3872. CASE-terminating END.  Therefore, your extra GOTO's at the end of each
  3873. case are unnecessary.  I have often wished that there were a special
  3874. C-like case statement in Pascal that would allow execution to "fall
  3875. through" multiple cases.  This would simplify a good deal of the
  3876. rigamarole I've gone through in some of my more object-oriented Pascal
  3877. programs.  (And keep me from using C in some instances!)
  3878.   EXAMPLE CODE:
  3879.    charin := ReadKey;
  3880.    case charin of
  3881.       'A'..'Z','a'..'z' : writeln( 'Letter');
  3882.       '0'..'9'          : writeln( 'Digit');
  3883.       'A'..'Z','0'..'9' : writeln( 'Capital letter or digit');
  3884.       else                writeln( 'Not defined.');
  3885.    end;
  3886. If you run this, you'll see that the third case is never executed!
  3887.   Bob Hodge
  3888.  
  3889. --- TMail v1.8
  3890.  * Origin: Revelstone TBBS - Home of FidoNews (216/642-1034) (1:157/504)
  3891.  
  3892.  
  3893. From:    Bob Hodge 
  3894. To:      George Butts                             Msg #148, 30-Jan-89 07:50am
  3895. Subject: TECHNOJOCKS V5
  3896.  
  3897.    Is Technojocks 5.0 going to be shareware?  From your description,
  3898. it doesn't sound like it.  If not, could you post an address and/or
  3899. phone number for ordering?  Thanks.
  3900.    Bob Hodge
  3901.  
  3902. --- TMail v1.8
  3903.  * Origin: Revelstone TBBS - Home of FidoNews (216/642-1034) (1:157/504)
  3904.  
  3905.  
  3906. From:    Chris Samp 
  3907. To:      Henry Bailey                             Msg #149, 29-Jan-89 02:42pm
  3908. Subject: Re: beginn8r
  3909.  
  3910. Yes, you can get Turbo Pascal 5.0 for $44.50. I called Borland and found this
  3911. to be true. Here are the details:
  3912.  
  3913. You need a letter from your instructor, on school letterhead, saying that you
  3914. are, indeed, taking Pascal, and will use this copy for eduactional purposes.
  3915. Send that, with another letter saying what you want (Turbo Pascal 5.0 on
  3916. [type] disks..) and a check for $44.50. You will not have to pay shipping or
  3917. tax (if you live outside of Califorina). Send it to:
  3918.  
  3919.    Attn: Education Department
  3920.    Borland International
  3921.    1800 Green Hills Road
  3922.    PO Box 660001
  3923.                  95066-001
  3924.  
  3925. If you have any questions, you can call Borland at (408)438-8400.
  3926. --- QuickBBS v2.03
  3927.  * Origin: CRIMP BBS [Sysop? Who Me?] (313) 582-6671 Wild! (1:120/116)
  3928.  
  3929.  
  3930. From:    Bob Ransom 
  3931. To:      Scott Samet                              Msg #150, 29-Jan-89 10:17am
  3932. Subject: Re: TUG O'Wards IV
  3933.  
  3934. -> IRC = International Reply Coupon.
  3935.  
  3936. That's it!
  3937. --- QuickBBS v2.03
  3938.  * Origin: The CREATIVE CONNECTION-Southfield, MI-(313) 559-9039 (1:120/96)
  3939.  
  3940.  
  3941. From:    Roland Brown 
  3942. To:      Matt Franckiewicz                        Msg #151, 31-Jan-89 11:20am
  3943. Subject: Re: Keep command, Cntrl-C
  3944.  
  3945.  >  > be able to reset the interrupt to the original setting
  3946.  >  > by using those variables. I think there is even an example
  3947.  >  > of how to do that in the manual(s) but I don't remember
  3948.  >  > where.
  3949.  >
  3950.  > If you are sa{ying that by doing something like
  3951.  > SaveInt24 := @YourNewInterrupt;
  3952.  > you can change what the interrupt does, I think you are
  3953.  
  3954. No.  What I was saying was that Turbo Pacal saves those vectors in those
  3955. pointers.  If you want to you could reset the vectors to the original vector
  3956. by using the SetVect (whatever the correct command is) to SaveInt24.  You
  3957. cannot simply do the above since all that would do is change the address in
  3958. the pointer.
  3959.  
  3960. roland 
  3961.  
  3962. ---
  3963.  * Origin: Sky Pilot Point Mail Box Off 261/1004 (Opus 1:26102/4)
  3964.  
  3965. *** This is a reply to #135.
  3966.  
  3967.  
  3968. From:    Jerry Brenner 
  3969. To:      Parker Jordan                            Msg #152, 31-Jan-89 04:22pm
  3970. Subject: Re: READ_KBD
  3971.  
  3972. I cannot find any mention of a read_kbd function in my technojocks manual.
  3973. What version do you have?
  3974.  
  3975.  
  3976. ---
  3977.  * Origin: Mdtn_BBS,  (717) 948-0212  Middletown Pa  Fidonet (Opus 1:150/511)
  3978.  
  3979. *** This is a reply to #114.
  3980.  
  3981.  
  3982. From:    Jim Forbes 
  3983. To:      Andy Lester                              Msg #153, 31-Jan-89 10:22am
  3984. Subject: Looping style
  3985.  
  3986. > JF>      Str_Length:= LENGTH(Source);
  3987. > JF>      FOR Position:= 1 TO Str_Length DO
  3988.   
  3989. > Stylistic question: ...  Why not simply say:
  3990. >  for Position:=1 to length(source) do {blah}
  3991.   
  3992. Andy:
  3993.   I used a compiler or interpreter at one time that evaluated the value
  3994. of a function in a looping statement each time through the loop.  I figured
  3995. that it was worth allocating variable space in order to make the loop more
  3996. efficient.  It turned into a habit that I never gave much thought to.
  3997.   
  3998.   Since you mentioned it, I decided to check and see how TP does it.
  3999. Turbo evaluates the expression only once. (The correct way in my opinion.)
  4000. As a result, its inefficient to do it the way I did.  Thanks for bringing
  4001. it to my attention.
  4002.  
  4003.  
  4004. ---
  4005.  * Origin: Backstreet BBS [HST], Fulton, NY * (315)-593-1589 (Opus 1:260/325)
  4006.  
  4007.  
  4008. From:    Jim Forbes 
  4009. To:      Scott Samet                              Msg #154, 31-Jan-89 10:23am
  4010. Subject: compiler directives
  4011.  
  4012. > >  {I$-} REPEAT              GOTOXY(52,Num_Address+7); WRITE(' ':5);
  4013. >
  4014. > The syntax is {$I-}
  4015.   
  4016.  Thanks, couldn't see the trees for the forest.
  4017.  
  4018.  
  4019. ---
  4020.  * Origin: Backstreet BBS [HST], Fulton, NY * (315)-593-1589 (Opus 1:260/325)
  4021.  
  4022. *** This is a reply to #6.
  4023.  
  4024.  
  4025. From:    Mark Howard 
  4026. To:      Paul Lindquist                           Msg #155, 31-Jan-89 12:42pm
  4027. Subject: Re: BBS
  4028.  
  4029.  > TP Board version 5.0 is the latest BBS written in Turbo Pascal.
  4030.  > Source Code is available for the board.  Paul Lindquist
  4031.  
  4032. Not for 5.0, if I'm not mistaken.  Version 4.something was the last source
  4033. released.
  4034.  
  4035. -m
  4036.  
  4037. --- FD 2.00
  4038.  * Origin: QuickBBS East [HST] - Distribution & Support (1:260/340)
  4039.  
  4040. *** Part of a conversation.
  4041.  
  4042.  
  4043. From:    Mike Janke 
  4044. To:      Wes Fisher                               Msg #156, 30-Jan-89 06:13pm
  4045. Subject: Thanx!!
  4046.  
  4047.  > Thanx for your help on the bits!!
  4048.  
  4049. No problem. Glad I could help.
  4050.  
  4051. --- FD 2.00
  4052.  * Origin: Kendall BBS - Miami's First QuickBBS  (1:135/4)
  4053.  
  4054. *** This is a reply to #9.
  4055.  
  4056.  
  4057. From:    Terry Hamel 
  4058. To:      All                                      Msg #157, 30-Jan-89 09:59am
  4059. Subject: Data Compression Routines
  4060.  
  4061.        I'd really appriciate it if anyone could post their knowledge on data
  4062. compression routines. If you have any books that are good references or have
  4063. some routines in Pascal, please leave a reply.
  4064.  
  4065.  
  4066. --- Lynx v1.22
  4067.  * Origin: EastSide Data Services - The New 105/61!
  4068.  
  4069.  
  4070. From:    Greg Franklin 
  4071. To:      Doug Lewis                               Msg #158, 30-Jan-89 12:42am
  4072. Subject: Re: YEAR 2000
  4073.  
  4074.  >                                         I hear that the year 2000 
  4075.  > or  every 2000 years there is 1 more day added to this year plus 
  4076.  > 1 day  for Leap year making 30 days for Febuary.  Is this correct 
  4077.  > or not?  If so where do I find the documentation stating this?  
  4078.  
  4079. Incorrect.  Normally, a year divisible by 100 would not have a leap
  4080. year at all! But since 2000 is divisible by 400 (a special case), 
  4081. there will be a normal 29-days-in-February leap year 11 years from
  4082. now.
  4083.  
  4084. (Hey, we oughta start planning the celebration party, don't you
  4085. think?)
  4086.  
  4087. --- Via OpXpress V1.07ß "Silver"  Greg Franklin, an End User...
  4088.  * Origin: The Migrants BBS Phx. Az. ░▒▓ (602) 264-2328 ▓▒░ (1:114/07)
  4089.  
  4090. *** Part of a conversation.
  4091.  
  4092.  
  4093. From:    Ed Grey 
  4094. To:      Jason Smith                              Msg #159, 30-Jan-89 12:28pm
  4095. Subject: Re: Turbo Pascal
  4096.  
  4097. Hello Jason, Borland recently sold the rights for Turbo Pascal 3.0 (for CP/M)
  4098. to a company called Alpha Systems, their number is (408) 297-5583.  Their
  4099. address is 711 Chatsworth Place, San Jose CA 95128.  The person to contact is
  4100. Joe Wright.  Hope this helps.
  4101.   
  4102. I am currently learning/using Turbo Pascal 3.0 on my CP/M computer.  Take
  4103. care.
  4104.     Ed Grey, Sysop of Grey Matter BBS (213-971-6260)
  4105. --- QuickBBS v2.03
  4106.  * Origin: Hatzlacha (213-466-3861) KESHERnet (Los Angeles, CA) (1:102/743)
  4107.  
  4108.  
  4109. From:    Ed Grey 
  4110. To:      Bill Shymanski                           Msg #160, 30-Jan-89 12:34pm
  4111. Subject: Re: turbo 5.0/cp/m disk formats
  4112.  
  4113. Turbo Pascal 3.01 for CP/M is available from:
  4114. Alpha Systems
  4115. 711 Chatworth Place
  4116. San Jose, CA 95128
  4117. (408) 297-5583
  4118. contact: Joe Wright
  4119.   
  4120. I believe (not positive) that the current price is $69.00, I suggest that you
  4121. confirm price with Alpha Systems.  Take care.
  4122.      Ed Grey, Sysop of Grey Matter BBS (213-971-6260)
  4123. --- QuickBBS v2.03
  4124.  * Origin: Hatzlacha (213-466-3861) KESHERnet (Los Angeles, CA) (1:102/743)
  4125.  
  4126.  
  4127. From:    Ed Grey 
  4128. To:      All                                      Msg #161, 30-Jan-89 12:50pm
  4129. Subject: Complete TP disk...
  4130.  
  4131. I have been using a book called the "Complete Turbo Pascal" (second edition)
  4132. by Jeff Duntemann, to help me with learning TP3.0. The seems to be okay.  I
  4133. have managed to locate a disk with the source files listed in the first
  4134. edition of the book, but I would like to locate the updated source files from
  4135. the second edition (which also covers TP 3.0. If anyone has (or knows where I
  4136. can locate) the disk for the second editon of this book, please leave me a
  4137. message.  Many thanks and take care.
  4138.    Ed Grey, Sysop of Grey Matter BBS (213-971-6260)
  4139. --- QuickBBS v2.03
  4140.  * Origin: Hatzlacha (213-466-3861) KESHERnet (Los Angeles, CA) (1:102/743)
  4141.  
  4142.  
  4143. From:    Mark Farnan 
  4144. To:      Frank Barrus                             Msg #162, 28-Jan-89 10:39am
  4145. Subject: Re: Bypassing the main screen
  4146.  
  4147.  > There are much easier ways to bypass that title screen.
  4148.  > Simply load turbo with: TURBO FILENAME, where filename
  4149.  > is the name
  4150.  > of one of your TP5 files..... This way it'll load it
  4151.  > There are much easier ways to bypass that title screen.
  4152.  > and go to
  4153.  > it directly...
  4154.  
  4155. The Title Screen is Also ByPassed if it finds a .PCK file in the directory. 
  4156.  It will go straight up, loading your last used file,  and away you 
  4157. go. !
  4158.  
  4159. Mark Farnan 
  4160.  
  4161. --- ConfMail V3.2
  4162.  * Origin: Pandemonium Programers BBS - (We Will WOC YOU) (3:711/414)
  4163.  
  4164.  
  4165. From:    Mark Farnan 
  4166. To:      Gary Doughty                             Msg #163, 28-Jan-89 09:53pm
  4167. Subject: Re: Quick Sort
  4168.  
  4169.  > I have recently trying to fin a quick way to sort some items
  4170.  > in an array.  I can write a buble sort fine, but it is
  4171.  > really slow.  Can someone please tell me how to write a
  4172.  > quick sort routine or better yet, give me some code?  I
  4173.  > needs to work on something about the size of an array of
  4174.  > 300 strings.
  4175. Hmm, I have some source on the BBS for a ZIP Sort, which claims 1000 records
  4176. in a couple of secods Max. . It is a 2k arc.
  4177.  
  4178. Pandemonium Programers BBS   (Fido 3:711/414)  61-2-411-7642
  4179.  
  4180. Mark Farnan 
  4181.  
  4182. --- ConfMail V3.2
  4183.  * Origin: Pandemonium Programers BBS - (We Will WOC YOU) (3:711/414)
  4184.  
  4185. *** This is a reply to #91.
  4186.  
  4187.  
  4188. From:    Mark Farnan 
  4189. To:      Mark Jeske                               Msg #164, 28-Jan-89 10:00pm
  4190. Subject: Re: MODEM
  4191.  
  4192.  > Hello, I am pretty new to the pascal area.  I have Turbo
  4193.  > Pascal 5.0.  I just have one question.  i was wondering
  4194.  > where all of the routines are for the modem?  what about
  4195.  > the routine to check if the phone is ringing or how to set
  4196.  > the modem?  Please help.
  4197.  >               Mark Jeske
  4198.  
  4199. Hi Mark.  I have quite a few of Modem Routines on the BBS, but that's in
  4200. Australia..  To Check the if the Phone is Ringing you Have to interpret one of
  4201. 2 things... 1- the RIng Detect Lene on the Comm Port, but not all modems use
  4202. this.   Or Sit in a Loop waiting for Characters from the modem.  You then have
  4203. to compare these with a string containing whatever your modem sends for a
  4204. RIng.. it is normally a No. or the word RING.  this loop should have a time
  4205. limit from first character to end, otherwise ang Crap coming in will mess
  4206. things up...  I have found the best way of talking to the Modem is to install
  4207. a Fossil program, like X00, and then use it via Interupts.
  4208.  
  4209. Mark Farnan - Pandemonium BBS - 3:711/414
  4210.  
  4211. --- ConfMail V3.2
  4212.  * Origin: Pandemonium Programers BBS - (We Will WOC YOU) (3:711/414)
  4213.  
  4214. *** This is a reply to #74.
  4215.  
  4216.  
  4217. From:    Mark Farnan 
  4218. To:      William Foxhunter                        Msg #165, 28-Jan-89 10:10pm
  4219. Subject: Re: Byte Location
  4220.  
  4221.  >    Gee, does anyone know the byte location(s) of the cursor
  4222.  > control word? That is, the memory location that controls
  4223.  > the size of the cursor?
  4224.  >    Thanks.
  4225.  
  4226. It is not an actual BYTE location. You actually have to access the Registers
  4227. on the 6845 video display controller.  (or Whatever the particular chip on an
  4228. EGA is). But he registers in question are the Same.
  4229.  
  4230. Video Display Registers.
  4231.  
  4232. To Access these registers, you have to Out to the Index Register ($3D4) the
  4233. Register you wish to Use. Then OutPut to The DataRegister ($3D5), the
  4234. information you wish it to contain.  (Or Read from it).
  4235. The Cursor is defined by 2 Registers, 10 & 11.   Register 10 defines the START
  4236. Scan line of it, and Register 11 Defines the STOP Scan Line. 
  4237. (PS - Please Remember those of us with 16 scan lines on a line {VGA} -)
  4238. Thats about it
  4239.  
  4240. Oh, one more Suggestion. To Write to PORTS in PAscal. use the PORT[] Array eg
  4241. to Write the Index with Register 10.
  4242.  
  4243. Begin
  4244.  Port[$3d8] := 10;
  4245. End.
  4246.  
  4247. Mark Farnan 
  4248.  
  4249. --- ConfMail V3.2
  4250.  * Origin: Pandemonium Programers BBS - (We Will WOC YOU) (3:711/414)
  4251.  
  4252.  
  4253. From:    David Dutton 
  4254. To:      ALL                                      Msg #166, 29-Jan-89 01:01pm
  4255. Subject: Protocols
  4256.  
  4257.  
  4258.        I desperately need several protocols in TP 4 or 5 source code. I would
  4259. rather not pay out for Protocol Engine but will if I have to. I need
  4260. specifically Zmodem, Xmodem and Modem7 but any are wanted. If possible can you
  4261. give me a net/node number where I can FREQ them. And please tell me size
  4262. before I call.
  4263.  
  4264. Thanks
  4265.  
  4266. David
  4267.  
  4268. --- msged 1.97S ZTC
  4269.  * Origin: The Stop Point  (FidoNet 3:712/504.2)
  4270.  
  4271.  
  4272. From:    Mark Farnan 
  4273. To:      Dale Barnes                              Msg #167, 29-Jan-89 12:34pm
  4274. Subject: Re: TPB 5.0
  4275.  
  4276.  > -> -->TPBoard 4.0 couldn't be recompiled after modification
  4277.  > of
  4278.  > -> -->source without an aftermarket item of some sort,
  4279.  > from what
  4280.  >
  4281.  > With 5.0 you will need to following to recompile the code:
  4282.  >
  4283.  >          Borland Database & Editor Toolbox
  4284.  >          TP Professional 5.0
  4285.  >          Protocol Engine (from the FD people).
  4286.  >
  4287.  > No easy or cheap way around.
  4288.  
  4289.  
  4290. Hmmm, I WANT Turbo Professional and the Protocol Engine DESPERATLY 
  4291. !!!!!.  Can any body please tell me where I can find/ get/ buy these 
  4292. Programs.  I have not seen Either in Australia.  But would not mind getting
  4293. them from the US if I can just find out WHERE.  I am writing my own BBS
  4294. system. (Yes I am feeling Suicidal :-).
  4295. Thanks Alot in advance.
  4296.  
  4297. Mark farnan
  4298. Pandemonium Programers BBS
  4299. 61-2-411-7642
  4300.  
  4301. --- ConfMail V3.2
  4302.  * Origin: Pandemonium Programers BBS - (We Will WOC YOU) (3:711/414)
  4303.  
  4304. *** Part of a conversation.
  4305.  
  4306.  
  4307. From:    Mark Farnan 
  4308. To:      Jon Guthrie                              Msg #168, 30-Jan-89 09:02am
  4309. Subject: Re: Setting Typematic Rate (TP4 or TP5)
  4310.  
  4311.  
  4312.  
  4313.  JG> PK> According to Norton this should double the typematic rate: 
  4314.  JG> 
  4315.  JG>Your first mistake was to use Norton.  (His information is never 
  4316.  JG>complete and is often wrong.) 
  4317.  
  4318. Incomplete i'd agre with, never found it wrong though.  I use The Programmers
  4319. PC SourceBook, by Thom Hogan,  for most of my Reference. But Nortons comes
  4320. into use occasionally. 
  4321.  
  4322. As for the Setting, TypMatic Rate  it cannot be done on an Xt, only AT, Pcjr,
  4323. and the PS/2 stuff. 
  4324.  
  4325. Mark Farnan 
  4326.  
  4327. --- ConfMail V3.2
  4328.  * Origin: Pandemonium Programers BBS - (We Will WOC YOU) (3:711/414)
  4329.  
  4330. *** There is a reply. See #223.
  4331.  
  4332.  
  4333. From:    Wes Fisher 
  4334. To:      All                                      Msg #169, 31-Jan-88 03:53pm
  4335. Subject: TPBoard
  4336.  
  4337. Does anyone have any info on TPBoard v5.0?  I wanta look at it.
  4338. Notice I said TPBoard not TPascal.
  4339.  
  4340. Wes
  4341. --- QuickBBS v2.03
  4342.  * Origin: WriteLn('I`ve got Pascal's Elbow!');  Connect 2400! (1:130/39)
  4343.  
  4344.  
  4345. From:    Bruce Mahoney 
  4346. To:      Roland Brown                             Msg #170, 30-Jan-89 04:09pm
  4347. Subject: TUG Subscription
  4348.  
  4349. Can you or anyone give info about subscribing to TUG?   Thanks..
  4350.  
  4351.  
  4352. ---
  4353.  * Origin: Huh? (Opus 1:170/211)
  4354.  
  4355. *** There is a reply. See #180.
  4356.  
  4357.  
  4358. From:    Andy Lester 
  4359. To:      Mike Janke                               Msg #171, 30-Jan-89 07:24pm
  4360. Subject: Re: Help On The Way
  4361.  
  4362.    >   WHILE KeyPressed DO IF ReadKey = #0 Then ;
  4363.  
  4364.  MJ> Can you explain the Then without anything following it?  I first saw 
  4365.  MJ> that in a example in the Turbo Pro manual and thought it was a 
  4366.  MJ> misprint... but the darn thing worked.
  4367.  
  4368. There IS something following it:  An empty statement.  He could even have 
  4369. written it as:
  4370. while Keypressed do
  4371.   if ReadKey=#0 then
  4372.     begin
  4373.     end;
  4374.  
  4375. An empty statement generates no code, but can help things out.  I've written 
  4376. code like this before:
  4377.  
  4378. if a=b
  4379.   then {nothing}
  4380.   else process_stuff;
  4381.  
  4382. There IS a statement, in the syntactical sense, following the Then, but it 
  4383. generates no code.  Functionally, that statement is equivalent to
  4384.  
  4385. if a<>b
  4386.   then process_stuff;
  4387.  
  4388. but sometimes I don't want to write it like that.
  4389.  
  4390. Andy
  4391.  
  4392.  
  4393. --- msged 1.96S ZTC
  4394.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true;
  4395. (1:115/790.2)
  4396.  
  4397. *** Part of a conversation.
  4398.  
  4399.  
  4400. From:    Andy Lester 
  4401. To:      James Williams                           Msg #172, 30-Jan-89 07:27pm
  4402. Subject: Screen-writes
  4403.  
  4404.  JW> Anyways, This is how I do my direct screen-writes, but I've a Mono
  4405.  JW> monitor, so I've never had to worry about Snow for the CGA screen:
  4406.  
  4407. But why bother?  Turbo does it for you via WRITE and WRITELN, I thought.  Am 
  4408. I wrong about this?
  4409.  
  4410. Andy
  4411.  
  4412.  
  4413. --- msged 1.96S ZTC
  4414.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true;
  4415. (1:115/790.2)
  4416.  
  4417. *** This is a reply to #51.
  4418.  
  4419.  
  4420. From:    Andy Lester 
  4421. To:      Dave Goggin                              Msg #173, 30-Jan-89 07:30pm
  4422. Subject: PASCAL RECURSION
  4423.  
  4424.  DG> the results seem to show that in order for recursion to work, you must 
  4425.  DG> plan carefully to get the maximum efficiency, and not overuse
  4426.  DG> recursion when a simple solution exists.
  4427.  
  4428. Right!  The factorial problem is a classic example of recursion, as well as a 
  4429. classic example of what's called (I believe) "head to tail recursion", since 
  4430. as soon as the recursive call is finished, the procedure ends.
  4431.  
  4432. Andy 
  4433.  
  4434. --- msged 1.96S ZTC
  4435.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true;
  4436. (1:115/790.2)
  4437.  
  4438. *** This is a reply to #143.
  4439.  
  4440.  
  4441. From:    Jean-Pierre Isore 
  4442. To:      All                                      Msg #174, 27-Jan-89 10:32pm
  4443. Subject: USE OF ECHO
  4444.  
  4445.  
  4446. For the sake of all active users of Echoes, be it reminded that:
  4447.  
  4448. 1. transmitting Echoes across the Continent is costing money
  4449.    to the SYSOP of the system
  4450.  
  4451. 2. The SYSOP bears no responsability for transmitting your private
  4452.    mail at his/her expense
  4453.  
  4454.    --------------------------------------------------
  4455. 3. Therefore make sure any message placed in an Echo,
  4456.    be it addressed to All or to any individual,
  4457.    is placed in an Echo solely if it is of
  4458.    interest to OTHER readers,
  4459.    I insist OTHER readers
  4460.    even if it is a private answer to a previous Echo
  4461.    message!
  4462.    -------------------------------------------------
  4463.  
  4464. 4. Any message which is only of interest to you and the addressee
  4465.    should be forwarded at YOUR expense through Net Mail!
  4466.  
  4467. 5. I love Echoes but as a SYSOP I am fed up paying for other people's
  4468.    private mail!
  4469.  
  4470. 6. This rule is applicable to any Echo!
  4471.  
  4472. 7. Use E-Mail for local private mail and Net-Mail for private outgoing
  4473.    mail!
  4474.  
  4475. Jean-Pierre, SYSOP, InfoDoc-Montreal
  4476. --- TBBS v2.0
  4477.  * Origin: The Canadian Videotex - InfoDoc-Montreal (514) 345-0565  (167/123)
  4478.  
  4479.  
  4480. From:    Andy Lester 
  4481. To:      Rolan Yang                               Msg #175, 01-Feb-89 05:02pm
  4482. Subject: VIRUS
  4483.  
  4484.  RY> I previously read a message about someone trying to write a virus
  4485.  RY> in pascal. Well, my computer class is the most boring in the world
  4486.  RY> and in between assignments I've been working on one. I have a working
  4487.  
  4488.  RY> Does anyone know how I can get a directory into a TXT file from a 
  4489.  RY> pascal program??
  4490.  
  4491. Like we're going to help you on this one?  Give us a break.  Go do something 
  4492. more productive with your time.  Sleeping is a start.
  4493.  
  4494. Andy
  4495.  
  4496.  
  4497. --- msged 1.96S ZTC
  4498.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true;
  4499. (1:115/790.2)
  4500.  
  4501. *** Part of a conversation.
  4502.  
  4503.  
  4504. From:    Andy Lester 
  4505. To:      Matt Franckiewicz                        Msg #176, 01-Feb-89 05:05pm
  4506. Subject: R
  4507.  
  4508.  MF> is supposed to be published in the Jan/Feb issue of Turbo Tech Report 
  4509.  
  4510. Where can we get a hold of this publication?
  4511.  
  4512. Andy
  4513.  
  4514.  
  4515. --- msged 1.96S ZTC
  4516.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true;
  4517. (1:115/790.2)
  4518.  
  4519. *** This is a reply to #136.
  4520.  
  4521.  
  4522. From:    Andy Lester 
  4523. To:      Paul West                                Msg #177, 01-Feb-89 06:27pm
  4524. Subject: String Functions
  4525.  
  4526.  PW> While I havn't tested Turbo Pascal to verify this..... many compilers 
  4527.  PW> would  have to calculate the length of "SOURCE" each pass thru the 
  4528.  PW> loop.  It makes a  remarkable diffence in speed to pre-calculate the 
  4529.  PW> result rather than have the  program do it many times over at run-time.
  4530.  
  4531. Nope.  The length of the string isn't "calculated" at any time.  Length(strg) 
  4532. is exactly the same as ord(strg[0]).  The first byte of the string holds the  
  4533. length, and is treated as a plain ol' numeric byte.
  4534.  
  4535. Now, if they were ASCIIZ strings, where it had to search for a hex 00 as a  
  4536. terminator, that would be something different.
  4537.  
  4538. Actually, length is not a function, but more a macro, a la C.  A  function
  4539. call is not generated, but simply the equivalent of
  4540. {$R- index checking off}
  4541. N:=ord(strg[0]);
  4542. {$R+}
  4543.  
  4544. Ord, Odd and Chr aren't functions, either, and with Turbo 4.0+'s 
  4545. type-casting, they become unnecessary.  
  4546.  
  4547. I USED to avoid using chr() and ord() all the time.  I'd define
  4548. ESC:=chr(27) as a variable so that I'd not have to keep calling the chr() 
  4549. function.  However, chr(27) is really a character literal when compiled, 
  4550. where the call to the variable ESC ate up more code...
  4551.  
  4552. Andy
  4553.  
  4554. --- msged 1.96S ZTC
  4555.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true; 
  4556. (1:115/790.2)
  4557.  
  4558. *** There is a reply. See #206.
  4559.  
  4560.  
  4561. From:    Andy Lester 
  4562. To:      All                                      Msg #178, 01-Feb-89 07:13pm
  4563. Subject: ProDOS Pascal compilers
  4564.  
  4565. I'm about to undertake a fairly sizable project that will run on the Apple //e
  4566. series.  I imagine it will be under ProDOS, although maybe DOS 3.3.  My 
  4567. question is:  Are there any good Pascal compilers that will generate native 
  4568. code that will run under either OS?  I haven't seen any, but then again I've 
  4569. not used DOS or ProDOS for a few years.... :-)
  4570.  
  4571. Thanks
  4572. Andy 
  4573.  
  4574. --- msged 1.96S ZTC
  4575.  * Origin: CONST PointName='Paradise City'; death=true; taxes=true;
  4576. (1:115/790.2)
  4577.  
  4578.  
  4579. From:    Rich Myers 
  4580. To:      Pat Anderson                             Msg #179, 01-Feb-89 07:16pm
  4581. Subject: Re: Tpb 5.0
  4582.  
  4583. Yes I am interested in a TP5 board with complete source (provided it can be
  4584. done with a minimum of investment in 3rd party stuff) and for the last
  4585. question I am not writing one...
  4586.  
  4587. Rich
  4588.  
  4589. --- Operetta V0.5.1Γ
  4590.  * Origin: The Twilight Zone (713) 497-5778 (1:106/301)
  4591.  
  4592. *** Part of a conversation.
  4593.  
  4594.  
  4595. From:    Rich Lewis 
  4596. To:      Bruce Mahoney                            Msg #180, 01-Feb-89 08:40pm
  4597. Subject: Re: TUG Subscription
  4598.  
  4599. TUG address:
  4600.                P.O. Box 1510
  4601.                Poulsbo, Wa.   98370
  4602.  
  4603. Membership is $ 24/ yr U.S.
  4604.               $ 28/ yr Canada & Mexico
  4605.               $ 39/ yr elsewhere
  4606.  
  4607. Their BBS number is (206) 697-1151
  4608.  
  4609.  
  4610. ---
  4611.  * Origin: SoundingBoard 713-821-4148 Houston `Just Say NOpus' (Opus 1:106/12)
  4612.  
  4613. *** Part of a conversation.
  4614.  
  4615.  
  4616. From:    John Klein @ 106/666 
  4617. To:      Rich Myers                               Msg #181, 01-Feb-89 09:17pm
  4618. Subject: Re: Tpb 5.0
  4619.  
  4620. In a message of <01 Feb 89 20:16:12>, Rich Myers (1:106/301) writes:
  4621.  
  4622.  RM>Yes I am interested in a TP5 board with complete source (provided it 
  4623.  RM>can be done with a minimum of investment in 3rd party stuff) and for 
  4624.  RM>the last question I am not writing one...
  4625.  RM> 
  4626.  RM>Rich
  4627.  
  4628.   If you can't get a hold of Tboard 5.0.  You might want to look into World
  4629. War Four (WWIV).  It's written in TP3.0, but it's rather well done, and the
  4630. author releaed it for the sole purpose of people UTILIZING his source code. 
  4631. Several BBS Systems have been made from it, The Message system is excellent.
  4632. Just thought t'might be helpful.
  4633.  
  4634.  
  4635. --- msged 1.97S ZTC
  4636.  * Origin: My Private Hell  (1:106/666)
  4637.  
  4638. *** This is a reply to #179.
  4639.  
  4640.  
  4641. From:    Chris Cavers 
  4642. To:      All                                      Msg #182, 02-Feb-89 01:55am
  4643. Subject: qs
  4644.  
  4645. Someone asked about a fast sort algorithm.
  4646. look into just about any data structures programming book and there should
  4647. be a listing for a sort routine called the 'quicksort'.
  4648. It is very fast! 
  4649. Or look into a sort routine called the 'radix sort' which is also fast
  4650.  
  4651.  
  4652.  
  4653. --- TAGMAIL v0.22.02 Beta
  4654.  * Origin: My Private Hell -- Houston,Tx (713)980-4824 (1:106/666.0)
  4655.  
  4656.  
  4657. From:    dj murdoch 
  4658. To:      Jesper Wolf                              Msg #183, 30-Jan-89 06:46pm
  4659. Subject: TESSERACT
  4660.  
  4661.  > I got hold of a version of tesseract for Turbopascal ver 4 but need one
  4662.  > for Turbopascal Ver 5. Do you know if that one exists?
  4663.  
  4664. Yes, I think I saw a notice on Compuserve that it has been released recently. 
  4665. I haven't got a copy yet - it seemed too insistent that I register, and I
  4666. didn't need it enough to send money or to live with the guilt of using it
  4667. unregistered :-)
  4668.  
  4669. --- ConfMail V3.31
  4670.  * Origin: Murdoch's_Point  - - (1:221/162.1005)
  4671.  
  4672. *** Part of a conversation.
  4673.  
  4674.  
  4675. From:    Lou Garner 
  4676. To:      Mike Hinds                               Msg #184, 01-Feb-89 09:14pm
  4677. Subject: Re: TP 5.0
  4678.  
  4679. FYI, noticed that Jeff Dunteman has released his book updated
  4680. for TP 5.0.  Good reference.
  4681.  
  4682. --- Via OpXpress V1.03ß       Don't you MESS with Texas, son....!!
  4683.  * Origin: The Tech Connect - **HST** (1:124/6215)
  4684.  
  4685. *** Part of a conversation.
  4686.  
  4687.  
  4688. From:    Lou Garner 
  4689. To:      Reinhardt Mueller                        Msg #185, 01-Feb-89 09:19pm
  4690. Subject: PASCALs
  4691.  
  4692.  >>you'll be as near to Pascal as you can get without actually
  4693.  >>getting Turbo 5.0! Get it! You won't be disapointed. You'll won't
  4694.  
  4695. FYI, I read in the current issue of PC WEEK that MicroSoft is
  4696. about to issue QUICK PASCAL.  Things are going to get pretty
  4697. confusing very soon.
  4698.  
  4699. One thing though... If they try to sell their product, it will
  4700. have to be better than TP 5.0 to succeed.  Can you imagine what
  4701. that might result in?
  4702.  
  4703. --- Via OpXpress V1.03ß       Don't you MESS with Texas, son....!!
  4704.  * Origin: The Tech Connect - **HST** (1:124/6215)
  4705.  
  4706.  
  4707. From:    Paul Lindquist 
  4708. To:      Terry Gaudet                             Msg #186, 31-Jan-89 10:24pm
  4709. Subject: Re: TURBO PASCAL 4 & 5
  4710.  
  4711. Turbo Pascal still had some memory problems that they didn't get solved.
  4712. Version 5.0 fixed that and added some more stuff.
  4713.  
  4714. Paul Lindquist
  4715. --- TBBS v2.0
  4716.  * Origin: TBBS in '89, We aren't QUICKly Lost in Time 918-744-0249 (170/210)
  4717.  
  4718. *** Part of a conversation.
  4719.  
  4720. YOU ONLY HAVE 2 MIN. LEFT
  4721.  
  4722.  
  4723. From:    Tom Bradford 
  4724. To:      Joerg Hegermann                          Msg #187, 01-Feb-89 04:24pm
  4725. Subject: Re: Style Debate #9,005
  4726.  
  4727. -> >Hi Tom,
  4728. -> >
  4729. -> >I'm writing from Singapore.
  4730. -> >I read your message regarding these F/X units.
  4731. -> >They sounded interesting to me.
  4732. -> >Are they public domain? And if so, is the source included?
  4733. -> >I'd be interested in downloading them in orderr to learn
  4734. -> >some pascal, since I'm still quite new to it.
  4735. -> >Perhaps if you could get me an account in your BBs I could
  4736. -> >download it from here? (That is if they aren't too
  4737. -> >big...otherwise I'll be poor due to the phone costs from
  4738. -> >here to the States).
  4739. -> >
  4740. -> >Cheers
  4741. -> >Joerg Hegermann
  4742.  
  4743. Upon logging on to my BBS, you will be automatically validated.  Though, I
  4744. am not releasing source code with most of my Units.  I do though have
  4745. example source code for the implementation of the individual Units that I
  4746. use.
  4747.  
  4748. The F/X-BBS - (617)567-8993 (1200/300BPS) - SysOp: Tom Bradford
  4749. --- QuickBBS v2.03
  4750.  * Origin: Read My Lips: I Meant No New TEXAS!  Yeah that's it! (1:101/160)
  4751.  
  4752. *** This is a reply to #59.
  4753.  
  4754.  
  4755. From:    Rick Rakes 
  4756. To:      Kevin Lowey                              Msg #188, 31-Jan-89 10:36am
  4757. Subject: Re: Pascal Sucks
  4758.  
  4759. Boy what a jerk....
  4760. --- QuickBBS v2.03
  4761.  * Origin: Felicia.. (804)591-0736[HST] Registered Quickbbs N News Va
  4762. (1:264/47)
  4763.  
  4764. *** Part of a conversation.
  4765.  
  4766.  
  4767. From:    Rolan Yang 
  4768. To:      Rolan Yang                               Msg #189, 01-Feb-89 10:31am
  4769. Subject: Re: VIRUS
  4770.  
  4771.  Sorry about one of my lines I had some type saying
  4772. CAT.TXT begin bla blabalbal
  4773.           ^
  4774.           !
  4775. corrected line should read
  4776. CAT.TXT BEING bla blabalbal
  4777.                                      Sorry,
  4778.                                  ROlan YAng
  4779. --- QuickBBS v2.03
  4780.  * Origin: MicroMan BBS - Piscataway, NJ (201)463-1540 (1:107/334)
  4781.  
  4782. *** Part of a conversation.
  4783.  
  4784.  
  4785. From:    Rolan Yang 
  4786. To:      Rolan Yang                               Msg #190, 01-Feb-89 10:38am
  4787. Subject: Re: VIRUS
  4788.  
  4789. Hmmm something is wrong... I can't think straight. I think I have the flu.
  4790. sorry
  4791. --- QuickBBS v2.03
  4792.  * Origin: MicroMan BBS - Piscataway, NJ (201)463-1540 (1:107/334)
  4793.  
  4794. *** Part of a conversation.
  4795.  
  4796.  
  4797. From:    Ross Wentworth 
  4798. To:      Charles Falconer                         Msg #191, 31-Jan-89 08:02pm
  4799. Subject: PascalP - MS DOS
  4800.  
  4801.  > I will release the code generator and run-time library
  4802.  > sources to responsible
  4803.  > persons who will keep me informed, for CPM use, and will
  4804.  > discuss the MSDOS port also (Compiler/codegenerator runs,
  4805.  > but library has insects).
  4806.  
  4807. I am interested in working on the libraries for the DOS version.  A while back
  4808. I created the functional equivelent of the DOS unit for a now defunct Pascal
  4809. compiler.  I have intimate knowledge of low-level DOS programming and can
  4810. provide assistance in all many areas.
  4811.  
  4812.                                     Ross Wentworth
  4813.  
  4814. --- FD 2.00
  4815.  * Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
  4816.  
  4817.  
  4818. From:    Ross Wentworth 
  4819. To:      Scott Sirovy                             Msg #192, 31-Jan-89 08:04pm
  4820. Subject: Graphics and TSRs
  4821.  
  4822.  >  Has anyone got a TSR shell lying around?  I'd rather just
  4823.  > insert my
  4824.  > routine into a shell than have to learn to write TSRs
  4825.  > (although someday I
  4826.  > will) now.
  4827.  
  4828. You can get my TSR package from the number listed below, the current version
  4829. is TPPOP18C.ARC, or the magic name of TPPOP.
  4830.  
  4831.                                     Ross Wentworth
  4832.  
  4833. --- FD 2.00
  4834.  * Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
  4835.  
  4836.  
  4837. From:    Ross Wentworth 
  4838. To:      Terry Gaudet                             Msg #193, 31-Jan-89 08:08pm
  4839. Subject: Turbo Pascal 4 & 5
  4840.  
  4841.  > to programming (and somewhat ignorant) I was wondering if I
  4842.  > should upgrade from my ver.3.0. If so which one (4 or 5)
  4843.  > would you suggest
  4844.  >  as being the better buy?  Thanks, Terry
  4845.  
  4846. Version 4.0 is no longer being marketed by Borland so that sort of limits your
  4847. choice.  Version 5.0 has a few additions that make it a better choice, the
  4848. biggest enhancement is built in mini-debugger and support for their full blown
  4849. debugger (from the Turbo Assembler/Debugger package).
  4850.  
  4851.                                     Ross Wentworth
  4852.  
  4853. --- FD 2.00
  4854.  * Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
  4855.  
  4856. *** Part of a conversation.
  4857.  
  4858.  
  4859. From:    Ross Wentworth 
  4860. To:      Tomas Gradin                             Msg #194, 31-Jan-89 08:13pm
  4861. Subject: TPPOP18B
  4862.  
  4863.  > What is it?
  4864.  
  4865. It's a TSR programming unit.  It basically allows you to quickly and easily
  4866. create resident popup programs (i.e. Sidekick (tm) like).
  4867.  
  4868. > And, where can I find it?
  4869.  
  4870. I don't know if it's available anywhere in zone 2, but you can FREQ it from my
  4871. bossnode (see below).  The current version is TPPOP18C.ARC.
  4872.  
  4873. ShareWare?
  4874.  
  4875. Yes.
  4876.  
  4877.                                     Ross Wentworth
  4878.  
  4879. --- FD 2.00
  4880.  * Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
  4881.  
  4882. *** This is a reply to #81.
  4883.  
  4884.  
  4885. From:    Ross Wentworth 
  4886. To:      Hector Santos                            Msg #195, 31-Jan-89 08:27pm
  4887. Subject: Re: Pascal => C
  4888.  
  4889.  > Using Quick C to learn is very fustrating. I suggest Turbo
  4890.  > C instead.
  4891.  
  4892. That's my plan.  Since money is a little tight at this time I'll just stick to
  4893. Turbo Pascal (which has never let me down).  If I can find some sucker, uh,
  4894. lucky person - to buy or trade my QuickC package then I'll reconsider learning
  4895. C.
  4896.  
  4897.                                     Ross Wentworth
  4898.  
  4899. --- FD 2.00
  4900.  * Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
  4901.  
  4902. *** This is a reply to #138.
  4903.  
  4904.  
  4905. From:    Kanda'jalen Eirsie 
  4906. To:      Syd Kahn                                 Msg #196, 31-Jan-89 10:28pm
  4907. Subject: Re: Printing Graphics
  4908.  
  4909. Be more specific about what kind of graphics you want printed.
  4910.  
  4911.   I had the same problem, only it was for a herculese screen.
  4912.  
  4913.   Basicly the problem as explained to me by the many people at Borland 
  4914. and The Compusearve Sig was that the Write and Writeln procedures are doctored
  4915. to stop output at a ^Z.  If you have an epson type printer the basic procedure
  4916. is to look at all the bits on the screen in groups of 8 going down i.e if you
  4917. are working with a graphics screen,
  4918.   Pixel 0,0 (upperlefthandcorner) is the first pixel you want, then 
  4919. 1,0 2,0 3,0  etc...  Moving across the screen..  Get out your printer manual
  4920. and it will show you what graphics mode you want to print in.
  4921. Unless you want to get ahold of it yourself, I can supply you with a TP5.0
  4922. Unit that will set up the printer into various graphics modes by the use of a
  4923. procedure called Hardcopy() ;
  4924.   Where the parameter is the mode you want to print in.
  4925.    It reads any graphics screen and prints to an epson type printer. 
  4926.  With a little jazz, you can modify it to any type of printer and if 
  4927. you want to print color, you would simply have to modify the subprocedure that
  4928. reads the screen, as it only reads whether a pixel is on or off..
  4929. I.E.  Color <> 0 ;  If you have a compusteal account, then it is available
  4930. there.  I believe it's called PrnGrph.  or GrphPrn something like that. 
  4931.  I made some modifications on the logic to get the databits and my 
  4932. version runs about twice as fast.  I optimized the way the data was read and
  4933. interpreted from the screen.  Whoever wrotye it in the first place did it in 5
  4934. instructions.  I Moved it into a Byte from a for loop, which was a bit faster
  4935. than his while loop.
  4936.  
  4937.                         Anyway,..
  4938.  
  4939.  
  4940.  
  4941.                                                       Kanda'
  4942.  
  4943.  
  4944. ---
  4945.  * Origin: Midi 'n Music 9600 (Irvine, CA - (714)552-3036) (Opus 1:103/516)
  4946.  
  4947. *** This is a reply to #105.
  4948.  
  4949.  
  4950. From:    Jon Guthrie 
  4951. To:      Andy Lester                              Msg #197, 01-Feb-89 09:57pm
  4952. Subject: Re: USES style
  4953.  
  4954. Re: FROM module IMPORT stuff
  4955.  
  4956.  AL> I think it's mostly to allow the programmer to explicitly say 
  4957.  AL> which code he   wants imported from the units that he's using.  
  4958.  AL> If, for example, you're using   unit CRT, but you're only using 
  4959.  AL> KeyPressed, you don't want the rest of the   code that's in CRT 
  4960.  AL> sucked in as well, do you? 
  4961.  
  4962. I don't think that the smart linker is the real reason that that feature
  4963. is included.  As you pointed out, such things don't need extra source
  4964. code.  A good reason to continue requiring the IMPORT list would be
  4965. this:  suppose you had two different procedures with the same name, but
  4966. different functions in each of two different files.  With the IMPORT
  4967. clause (is it called a clause?  I'm not sure.) you can include one, but
  4968. not the other, but still use stuff from both files.  Otherwise, you
  4969. would wind up specifying which source file the particular function came
  4970. from each time you used it.  (One of these 'do it now, or do it a lot
  4971. later' deals.)
  4972.  
  4973. Before you start telling me that such a thing is far-fetched, I seem to
  4974. remember a problem somebody had recently that involved something
  4975. similar. 
  4976.  
  4977. --- Via OpXpress V1.06ß "Silver"  SCIGUY -  The Scourge of Delphi!
  4978.  * Origin: FOG-LINE;FOG#51;USR HST;515-964-7937 (1:14/627)
  4979.  
  4980. *** This is a reply to #141.
  4981.  
  4982.  
  4983. From:    Mark Zylka 
  4984. To:      All                                      Msg #198, 01-Feb-89 02:12pm
  4985. Subject: TML Pascal
  4986.  
  4987. Does anyone have TML Pascal?  Is the documentation good enough?  I have heard
  4988. it is a good program.. I would like a few more opinions.
  4989.  
  4990.  
  4991. ---
  4992.  * Origin: The PainFrame [where English is butchered] (301) 488-7461 (Opus
  4993. 1:261/1004)
  4994.  
  4995.  
  4996. From:    Lee Davis 
  4997. To:      All                                      Msg #199, 31-Jan-89 08:34am
  4998. Subject: New Network
  4999.  
  5000. IMPORTANT MESSAGE TO SYSOPS -   A NEW NET FOR THE 90'S!
  5001.  
  5002. A New NATIONAL NET has arrived on the scene.  It's called BBS NET!
  5003.  
  5004. BBS NET will be a hassle free, friendly, exciting new Net.  It will have
  5005. it's own echoes, newsletters, and nodelists.  It will also, be a very
  5006. Democratic Net, in that the ZONE Coordinator (The guy in charge) will be
  5007. re-elected every 5 years, the NET & REGIONAL Coordinators will be re-
  5008. elected every 2 years (Local Net Heads and Regional Heads).  So if you
  5009. dislike a head coordinator "YOU" get a chance to vote on a new person.
  5010. On top of all this, there will be 5 people who will be more in charge
  5011. than the ZONE Coordinator just in case some people have big problems
  5012. with policies, echoes and such.
  5013.  
  5014. BBS NET will not in any form be trying to take over any other NET, but
  5015. in fact, will be taking the best of all the NETS and combining it into
  5016. "1" SOLID "HASSLE FREE" NETWORK!
  5017.  
  5018. If this sounds like YOUR type of National Network, or you would just
  5019. like to add another NET to your bbs system then send Netmail to
  5020. 137/13 or call 813-351-8483.
  5021.  
  5022.  
  5023.  
  5024. ---
  5025.  * Origin: Suncoast Data Exchange (813) 351-8654 BBS-Net 6/0 (Opus 1:137/13)
  5026.  
  5027.  
  5028. From:    Holger Schurig 
  5029. To:      Heikki Levanto                           Msg #200, 29-Jan-89 07:14pm
  5030. Subject: Init section of unit & include
  5031.  
  5032. Heikki writes in "Re: C versus PASCAL":
  5033.  
  5034. HL> BTW, I told of a small bug here, you can't put an init section of an
  5035. HL> unit into an include file.  Has that message disappeared, or don't you
  5036. HL> folks care ?
  5037.  
  5038. I answered to this. Not received ?
  5039.  
  5040. --- INFgate 0.10
  5041.  * Origin: INFSYS-Development : Matrix to 2:507/628 (2:507/6.0)
  5042.  
  5043.  
  5044. From:    Eef Hartman 
  5045. To:      Fabiano Fabris                           Msg #201, 29-Jan-89 12:22pm
  5046. Subject: Re: Files
  5047.  
  5048.  > How do you do this:
  5049.  >
  5050.  > ->In a message of <12 Jan 89 20:45:42>, Mark Hopkins (1:343/8.13)
  5051.  > writes:
  5052.  
  5053. This is done by a nifty little program, called MsgEd, which can be used by
  5054. SysOps and Points, sorry, not for "normal" human BBS callers 
  5055.  
  5056. ---
  5057.  * Origin: Robert's programmer board     tel 020 - 453903     (Opus 2:512/33)
  5058.  
  5059. *** This is a reply to #121.
  5060.  
  5061.  
  5062. From:    Ruud Janssen 
  5063. To:      All                                      Msg #202, 29-Jan-89 04:27pm
  5064. Subject: DOOLHOVEN.
  5065.  
  5066. Wie heeft er een programma dat doolhoven tekent op zowel het beeldscherm als
  5067. op een printer. Liefst geschreven in Turbo Pascal (3.0 of 4.0 of 5.0)
  5068.   
  5069. Groeten,
  5070.  
  5071. Ruud Janssen / TAM.
  5072. --- TBBS v2.0
  5073.  * Origin: INFOboard CD-rom's online (2,5 gigabyte) 04780-88119 (14 lijnen)
  5074. (500/206)
  5075.  
  5076.  
  5077. From:    Sebastian Shapiro 
  5078. To:      Wesley Williams                          Msg #203, 28-Jan-89 08:05am
  5079. Subject: record
  5080.  
  5081. OK. I forgot that...
  5082.  
  5083. Sebastian 
  5084.  
  5085. ---
  5086.  * Origin: Marselisborg BBS (Opus 2:231/59)
  5087.  
  5088.  
  5089. From:    Sebastian Shapiro 
  5090. To:      Joseph Dejesus                           Msg #204, 28-Jan-89 08:25am
  5091. Subject: Turbo BBS
  5092.  
  5093. There is a program called (ohhh Gosh) Turbo BBS...
  5094. If you can't find it on a BBS in your local area I will be glad to send you a
  5095. disk with the program, if you give me your address.
  5096.  
  5097. Sebastian Shapiro 
  5098.  
  5099. ---
  5100.  * Origin: Marselisborg BBS (Opus 2:231/59)
  5101.  
  5102.  
  5103. From:    Truls Meland 
  5104. To:      rich Myers                               Msg #205, 23-Jan-89 09:25pm
  5105. Subject: Re: Next TP version
  5106.  
  5107. How about this:
  5108. * The ability to compile, stop at error, let user correct error,
  5109.   continue compilation FROM ERROR, not from the top.
  5110.  
  5111. Truls
  5112.  
  5113. --- Via OpXpress V1.07ß "Silver"   *********** TEEM ***
  5114.  * Origin: Perleporten :     *****  OPUS BBS System Board (083)75442 *****
  5115.  
  5116. *** This is a reply to #96.
  5117.  
  5118.  
  5119. From:    Per Holm 
  5120. To:      Scott Hucke                              Msg #206, 29-Jan-89 05:09pm
  5121. Subject: string functions
  5122.  
  5123. Hello Scott,
  5124.  
  5125.  SH> i need a function to convert to uppercase and lower case for strings 
  5126.  
  5127. If you grap your manual there's a small piece of Assembler code for a function
  5128. that will convert a STRING to uppercase.
  5129.  
  5130. Here's some code picked out from the OpInt Interface:
  5131.  
  5132. File: Case.Asm
  5133.  
  5134.                ---CUT---
  5135.  
  5136. CODE    SEGMENT BYTE    PUBLIC
  5137.  
  5138.         ASSUME  CS:CODE
  5139.  
  5140.         PUBLIC  UpperCase, LowerCase        ;Make them known
  5141.  
  5142. ;---------UpperCase
  5143.  
  5144. ;function UpperCase(S:String) : String;
  5145. ;Convert String to UpperCase
  5146.  
  5147. UpperRes        EQU     DWORD PTR [BP+10]
  5148. UpperStr        EQU     DWORD PTR [BP+6]
  5149.  
  5150. UpperCase       PROC FAR
  5151.         PUSH    BP                      ;Save BP
  5152.         MOV     BP,SP                   ;Set up stack frame
  5153.         PUSH    DS                      ;Save DS
  5154.         LDS     SI,UpperStr             ;Load String address
  5155.         LES     DI,UpperRes             ;Load result address
  5156.         CLD                             ;Forward string-ops
  5157.         LODSB                           ;Load string length
  5158.         STOSB                           ;Copy to result
  5159.         MOV     CL,AL                   ;String length to CX
  5160.         XOR     CH,CH
  5161.         JCXZ    U3                      ;Skip if empty
  5162. U1:     LODSB                           ;Load charecter
  5163.         CMP     AL,'a'                  ;Skip if not 'a' to 'z'
  5164.         JB      U2
  5165.         CMP     AL,'z'
  5166.         JA      U2
  5167.         SUB     AL,'a'-'A'              ;Convert to uppercase
  5168. U2:     STOSB                           ;Store in result
  5169.         LOOP    U1                      ;Loop for all charecters
  5170. U3:     POP     DS                      ;Restore DS
  5171.         POP     BP                      ;Restore BP
  5172.         RET     4                       ;Remove parameter and return
  5173.  
  5174. UpperCase       ENDP
  5175.  
  5176. ;---------LowerCase
  5177.  
  5178. ;function LowerCase(S:String) : String;
  5179. ;Convert String to LoverCase
  5180.  
  5181. LowerCase       PROC FAR
  5182.         PUSH    BP                      ;Save BP
  5183.         MOV     BP,SP                   ;Set up stack frame
  5184.         PUSH    DS                      ;Save DS
  5185.         LDS     SI,UpperStr             ;Load String address
  5186.         LES     DI,UpperRes             ;Load result address
  5187.         CLD                             ;Forward string-ops
  5188.         LODSB                           ;Load string length
  5189.         STOSB                           ;Copy to result
  5190.         MOV     CL,AL                   ;String length to CX
  5191.         XOR     CH,CH
  5192.         JCXZ    L3                      ;Skip if empty
  5193. L1:     LODSB                           ;Load charecter
  5194.         CMP     AL,'A'                  ;Skip if not 'a' to 'z'
  5195.         JB      L2
  5196.         CMP     AL,'Z'
  5197.         JA      L2
  5198.         ADD     AL,'a'-'A'              ;Convert to lovercase
  5199. L2:     STOSB                           ;Store in result
  5200.         LOOP    L1                      ;Loop for all charecters
  5201. L3:     POP     DS                      ;Restore DS
  5202.         POP     BP                      ;Restore BP
  5203.         RET     4                       ;Remove parameter and return
  5204.  
  5205. LowerCase       ENDP
  5206.  
  5207. CODE    ENDS
  5208.  
  5209.         END
  5210.  
  5211.                ---CUT---
  5212.  
  5213. File: Test.Pas
  5214.  
  5215.                ---CUT---
  5216. {F+}
  5217. {$L Case.Obj}
  5218.  
  5219. Function Uppercase(S:String):String; External;
  5220. Function Lowercase(S:String):String; External;
  5221.  
  5222. {$F-}
  5223.  
  5224. BEGIN
  5225.   WriteLn(UpperCase('Testing This OpInt Function'));
  5226.   WriteLn(LowerCase('And This one Too'));
  5227. END.
  5228.  
  5229.               ---Cut---
  5230.  
  5231. Like the other examples these routines doesn't take the special european
  5232. letters like the danish. (AE, OE, AA, ae, oe & aa). This might easily be added
  5233. to the code if you need it.
  5234.  
  5235. Hope this might help you, the .ASM file should be compiled to an .OBJ file
  5236. with an Assembler.
  5237.  
  5238. Happy Programming.
  5239.  
  5240.     Per Holm.
  5241.  
  5242. --- ConfMail V3.31ph3
  5243.  * Origin: Asgaard BBS - Home of OpInt - +45-6-119043 (2:230/22)
  5244.  
  5245. *** This is a reply to #177.
  5246.  
  5247.  
  5248. From:    Mike Janke 
  5249. To:      Tony Hsieh                               Msg #207, 01-Feb-89 06:11am
  5250. Subject: Re: HELP ON THE WAY
  5251.  
  5252.  > The statement
  5253.  > IF READKEY=#0 then ;
  5254.  
  5255.  > the reason for the semi-colon immediately after the then is
  5256.  > so that it'll mean "do nothing."
  5257.  
  5258. Thank you.  After thinking about it, I can see where it would be useful at
  5259. times.
  5260.  
  5261. --- FD 2.00
  5262.  * Origin: Kendall BBS - Miami's First QuickBBS  (1:135/4)
  5263.  
  5264. *** Part of a conversation.
  5265.  
  5266.  
  5267. From:    Kevin Lowey 
  5268. To:      All                                      Msg #208, 30-Jan-89 04:35pm
  5269. Subject: Alternative to Turbo Technix
  5270.  
  5271. Hi, 
  5272.  
  5273.   I've seen a number of messages lamenting the demise of Turbo Technix. 
  5274. I thought you might be interested in an alternative. 
  5275.  
  5276.   The Turbo User's Group is a group for discussion of BORLAND 
  5277. programming products, including Pascal, C, Prolog, Basic and even Paradox
  5278. macros.  They publish a bimonthly newsletter.  It isn't as glossy as TT was,
  5279. but the articles ARE interesting.  They also distribute public domain and
  5280. shareware diskettes, and run their own multiuser BBS system for discussing
  5281. BORLAND products.  Finally, they also sponsor a yearly programming contest in
  5282. which the members of TUG are the judges. 
  5283.  
  5284.   They used to get free advertising from Borland in every product sold, 
  5285. but Borland (without warning) stopped including their prospectus.  So now they
  5286. are stuck with no way to let people know about them.  That's why I'm posting
  5287. this message.  I think they are a nonprofit organization, so I don't think I'm
  5288. breaking any Echomail rules.  If I am, please forgive me. 
  5289.  
  5290.   The yearly membership dues are $24 US in the US,  $28 US in Canada 
  5291. and Mexico, and $39 US overseas.  To join, send a letter to 
  5292.  
  5293.      Turbo User's Group (TUG) 
  5294.      P.O. Box 1510 
  5295.      Poulsbo, Washington USA 98370 
  5296.  
  5297. Include the following information: 
  5298.  
  5299.    Name, Company, Mailing Address, City, State/Province, Zip/Postal 
  5300. code, and Country.  You can pay by cheque, money order, Mastercard, or VISA
  5301. (include card number and expiry date). 
  5302.  
  5303.  
  5304. -- Kevin Lowey 
  5305.  
  5306.  
  5307. ---
  5308.  * Origin: University of Sask. Computing Services (Opus 1:140/43)
  5309.  
  5310.  
  5311. From:    Colten D. Edwards 
  5312. To:      Kevin Kwast @ 930/1                      Msg #209, 31-Jan-89 03:42am
  5313. Subject: Transfer Protocols
  5314.  
  5315. TPZSFZ or some such name (Zmodem Src) is available from 152/2 or 140/48 or
  5316. 161/205 at least. WxModem.ARC is avaiable from 140/48 and possibly others.
  5317. First time download priv or Freq 23 hrs a day 
  5318.  
  5319. --- ConfMail V4.00
  5320.  * Origin: Treasure Isle Private Mail System (1:140/51)
  5321.  
  5322. *** Part of a conversation.
  5323.  
  5324.  
  5325. From:    Colten D. Edwards 
  5326. To:      Tony Shelton                             Msg #210, 31-Jan-89 03:49am
  5327. Subject: .GIF
  5328.  
  5329. All you should have gotten with your upgrade is a Reference manual and a Users
  5330. guide. BTW if you don't want one of the Update manuals I would pay the
  5331. shipping to get it. Before anyone flames me though I do have a purchased copy
  5332. of TP5, but it would be nice to have a extra manual one for work and one for
  5333. home. Save some lugging of manuls. I called Borland and inquired but noway
  5334. don't sell the manuals alone...
  5335. Anyways send netmail if possible to 140/48 or 140/51 either way I'll get the
  5336. message or leave a message with a number where you might be reached and I'll
  5337. call you.... 
  5338.  
  5339. --- ConfMail V4.00
  5340.  * Origin: Treasure Isle Private Mail System (1:140/51)
  5341.  
  5342. *** This is a reply to #144.
  5343.  
  5344. TIME LIMIT.YJ$D≡
  5345. NO CARRIER
  5346.